79cd9c08d8
- Bulk replace Clojure/Nim → Bara Lang in src/, lib/, examples/, benchmarks/, experiments/, books/, LICENSE, cljnim.nimble, PLAN.md, AI_AGENT.md - Rename book chapters: 05-clojure-nim.md → 05-bara-lang.md (en + bg) - Update all chapter index links and anchors - Replace project-specific 'Clojure' references with 'Bara Lang' in experiments/, src/ai_assist.nim, src/tui_screens.nim, src/emitter.nim, src/reader.nim, src/types.nim, lib/cljnim_runtime*.nim - Keep legitimate JVM Clojure/ClojureScript/Clojure CLR references intact
17 lines
486 B
Nim
17 lines
486 B
Nim
# Generated by Bara Lang
|
|
import cljnim_runtime
|
|
|
|
proc square*(x: CljVal): CljVal =
|
|
cljMul(@[x, x])
|
|
proc cube*(x: CljVal): CljVal =
|
|
cljMul(@[x, x, x])
|
|
proc add*(a: CljVal, b: CljVal): CljVal =
|
|
cljAdd(@[a, b])
|
|
proc greet*(name: CljVal): CljVal =
|
|
cljStrConcat(@[cljString("Hello, "), name, cljString("!")])
|
|
proc factorial*(n: CljVal): CljVal =
|
|
if cljIsTruthy(cljNumEq(@[n, cljInt(0)])):
|
|
result = cljInt(1)
|
|
else:
|
|
result = cljMul(@[n, factorial(cljSub(@[n, cljInt(1)]))])
|