jsn: (Default)
[personal profile] jsn

Решил по примеру [livejournal.com profile] avva написать на коленке интерпретатор языка scheme (завёл для этого проект на github.com). Вот что оно сейчас умеет:

> +
#<builtin procedure (#\+)>
> lambda
#<builtin syntax (lambda)>
> (lambda (x) (+ x x))
#<procedure ((x) (+ x x))>
> (((lambda (X)
    ((lambda (procedure)
       (X (lambda (arg) ((procedure procedure) arg))))
     (lambda (procedure)
       (X (lambda (arg) ((procedure procedure) arg))))))
  (lambda (func-arg)
    (lambda (n)
      ((_if (= 0 n)
           (lambda () 1)
           (lambda () (* n (func-arg (- n 1)))))))))
 5)
120
>

Обычно на этой фазе как раз все и бросают :) Ну, посмотрим.

If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org

Profile

jsn: (Default)
jsn

July 2020

S M T W T F S
   1234
56789 1011
12131415161718
19202122232425
262728293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 1st, 2026 10:56 am
Powered by Dreamwidth Studios