Lazy-K
Lazy K のオリジナルの配布物には bf2lazy.c というファイルが含まれていて Brainfuck プログラムを Lazy K にコンパイルできるのですが、逆に Brainfuck で Lazy K のプログラムを動かす方法はこれまで存在しませんでした。Lazy K で Brainfuck の配列のよ…
https://github.com/irori/lazyk-lisp http://lazy-k.appspot.com/p/ptHm_GwfAYLazy K でも Lisp インタプリタを作ってみました。機能は Unlambda 版とだいたい同じですが call/cc が無くなり、代わりに set でグローバル変数に代入できるようになりました。…
http://d.hatena.ne.jp/rst76/20131109/1383953947399bytes の解説書くのをサボっていたら id:rst76 さんが解読して記事にしてくださいました。なんかすいません…そして 365bytes! ついに Grass より上に。 http://golf.shinh.org/p.rb?hello+world#ranking…
Lazy K もブラウザ上で実行できるようにしたいなぁ、でも JavaScript でインタプリタ実装するの面倒だなぁ、と思っているうちに世の中が進歩して簡単になったので作ってみました。http://lazy-k.appspot.com/いくつか例を。http://lazy-k.appspot.com/p/kyYM…
この前作ったインタプリタ にバグを見つけてしまいました。特定の位置で GC が走ると、出力リストの cdr を辿る処理が動かなくて、ごく希に同じ文字を2度続けて出力してしまってました。修正したソースコードはこちら。 lazyk.c (github) ゴルフ場のインタ…
あなごるの sort characters を挿入ソートで書いたらタイムアウトになって悲しかったので、速度重視で作ってみました。 lazyk.c (github) 公式のインタプリタ: lazy sort+characters.lazy 作ったやつ: ./lazyk sort+characters.lazy 公式のはノードのメモリ…
Haskell Hackathon が楽しそうだったので、昔作りかけて放置してあった Haskell コンパイラを引っ張り出してきました。せっかくなので、最もタメになる初心者用プログラミング言語であるところの Lazy K へのトランスレータにしてみました。 hs2lazy.tgz (…
言及されてたので解説。 ソースはこんな感じ。 (load "./lazier.scm") (load "./prelude.scm") (lazy-def '(main input) '(input (lambda (hd tl) (((hd (lambda (x) (x (k i))) (k i)) cdr) tl)))) (print-as-unlambda (laze 'main)) やりたいことは、 先頭…