Files
bara-lang/docs
dimgigov 6dfc2a9308 Phase 5: HAMT Persistent Map + Persistent Set, 86 tests pass
- T5.3: HAMT Persistent Map (lib/cljnim_pmap.nim)
  O(log32 n) assoc/dissoc/get with structural sharing
  16 unit tests, ckMap migrated from seq to HAMT

- T5.4: Persistent Set backed by HAMT map
  ckSet with conj/disj/contains?/get, set literal #{}

- Fix: cljContains/cljCount return CljVal (not bool/int)
- Fix: equality in generics via explicit cljEq parameter
- Updated roadmap, task board, CI/Makefile
2026-05-08 19:13:09 +03:00
..

Clojure/Nim

Диалект на Clojure, който се компилира до Nim, после до C, и накрая до native бинарен файл.

Какво е това?

Clojure/Nim е AI-first имплементация на езика Clojure за екосистемата на Nim. Вместо да работи върху JVM или JavaScript, компилира Clojure код директно до Nim, оттам до C, и накрая до native бинарен файл.

Защо?

  • Native Performance: Компилира се до C през Nim. Без JVM warmup, без GC паузи.
  • Малки Бинарни Файлове: Единични изпълними файлове, често под 1MB.
  • Nim Ecosystem: Директен достъп до Nim и C библиотеки през FFI.
  • AI-Native: Построен за AI агенти, работещи в терминал — структуриран JSON REPL, batch evaluation, git интеграция.

Бърз Старт

# Клониране
git clone https://gitlab.com/balvatar/lisp-nim.git
cd lisp-nim

# Изграждане
make build

# Изпълнение на файл
./cljnim run examples/hello.clj

# Човешки REPL
./cljnim repl

# AI REPL (JSON режим)
./cljnim repl --json

Примери

Hello World

;; examples/hello.clj
(println "Здравей, Nim свят!")
(println (+ 1 2 3))
$ ./cljnim run examples/hello.clj
Здравей, Nim свят!
6

Функции и Рекурсия

;; examples/math.clj
(defn square [x]
  (* x x))

(defn factorial [n]
  (if (= n 0)
    1
    (* n (factorial (- n 1)))))

(let [a 5]
  (println (square a))
  (println (factorial a)))
$ ./cljnim run examples/math.clj
25
120

AI-First REPL

Clojure/Nim е построен за AI агенти. JSON REPL предоставя структуриран I/O, идеален за програмно взаимодействие.

$ ./cljnim repl --json
{"status":"ready","ns":"user","mode":"json"}

> {"op":"eval","form":"(+ 1 2 3)"}
{"status":"ok","result":{"printed":"6"},"meta":{"ms":861}}

> {"op":"eval","form":"(defn square [x] (* x x))"}
{"status":"ok","result":{"type":"var","name":"square"}}

> {"op":"eval","form":"(square 5)"}
{"status":"ok","result":{"printed":"25"}}

> {"op":"quit"}
{"status":"ok","bye":true}

Документация

Документ Описание
GUIDE.bg.md Ръководство за потребителя
ARCHITECTURE.bg.md Архитектура и дизайн
AI_FIRST.bg.md AI-first философия
API.bg.md REPL API референция
ROADMAP.bg.md Пътна карта за разработка

Лиценз

MIT License — вижте LICENSE.