jijiスケッチ

1000行くらい。quasiquoteの実装半ば。バグだらけ。
JavaScriptの作法が分からないうちに書き始めたから、へんてこ。
といういいわけをしてもしかたがないほど恥ずかしいが、休日に書いてみたものを下記に出してみる。
評価のタイミングを整理できていないので、そこが一番直したいところ。

あまりにもシュールなページなので、時間見つけて適宜修正予定。

http://strobolights.homeip.net/kiki/jijitest

ドキュメントは皆無。まだスケッチだし。

嫁のあいてとかしないといけなく、最後の休日は何もできそうにない。。

quasiquoteがないにも関わらず、define-macro (mac)は一応動くかもしれない。

コメントの読み飛ばしを実装してない。。そういえば。。

biwaSchemeは素晴らしいなぁそれにしても。arc lightとか。

;;;; 試せるコード例

(def x 10)
x ;; => 10

(def (fn1 x) (+ x 10))
(fn1 5) ;; => 15

(def (acm1 x) (fn (y) (= x (+ x y))))
(def tmp (acm1 10))
(tmp 10) ;; => 20, 30, 40,,,

(mac (myif x y z) (list 'if x y z)) ;; tadano if.

(def x (table))
(= (x 'a) "hello")
(x 'a) ;; =>"hello"

((($ "#stdin") 'val)) ;; => "((($ "#stdin") 'val))"
((($ "#memo") 'text) "hello jiji") ;; => 書き換え。
;; メソッド呼び出しの構文はもう少し砂糖にくるみたい。。

(def x (js-new 'Object))
(= (x "hello") "world")
(x "hello") ;; => world

*1 ;; => 時間

*1:js-eval "Date"