لغة Lisp لـ V، باستدعاءات ذيل مجانية فعلاً
لهجة Lisp صغيرة على آلة CEK صريحة. الاستدعاء في موضع الذيل يعيد استخدام إطاره بدل تكديس إطار جديد، فالحلقة حلقة وليست مكدساً ينمو حتى يموت.
هذا القسم لم يُترجم بعد إلى لغتك، وهو معروض بالإنجليزية. الترجمات مرحب بها.
A taste
(define (fib n)
(if (< n 2)
n
(+ (fib (- n 1))
(fib (- n 2)))))
(fib 20) ;=> 6765
هذا القسم لم يُترجم بعد إلى لغتك، وهو معروض بالإنجليزية. الترجمات مرحب بها.
ما هو
Real tail calls
A quarter of a million iterations end with an empty continuation stack. Mutual recursion tail-calls too, which is the part most trampolines skip.
An explicit machine
Evaluation is a data structure you can inspect, not a recursive function you have to trust. Every step is counted, and every limit is a field you can set.
Embeddable by shape
The machine is a library with no global state. print output is collected into a field, so a host can capture it rather than fight it.
هذا القسم لم يُترجم بعد إلى لغتك، وهو معروض بالإنجليزية. الترجمات مرحب بها.
Where it stands
Working: the reader, closures, arithmetic, branching, loop, dotimes, letrec, cond, case, and proper tail calls including mutual recursion.
Not yet: let*, rest parameters, callable keywords, modules, and macros. Each one is named in the repository rather than quietly missing.