ニワン語による最初の言語処理系?
こっちも貼っとく。
( Grass the grass-planting programming language )
初めて触った関数型言語がコレなんだけど、FizzBuzzが書けません。
これもzick氏が作ったのかなと思ったけど違うみたい。
Grassのページからもリンクしてあったけど、原作者製でもないのかな。
追記
ブクマにPerlの偉い人のGrassコードが!と思ったらどう見ても適当なw連打です。ありがとうございました。
投稿者コメにあるコードをCommonLispで適当に解説
- wWWwwww (wを一個出力)
(defun main (self) (out w))
- wWWwwwwWWww (ずっとwのターン)
(defun main (self) (progn (out w) (funcall self self)))
main関数は (main #'main) という感じで、自身を引数にして実行されます。
プリミティブ関数 out succ w inは
(defun out (c) (write-char (code-char c))) (defun succ (c) (mod (1+ c) 256)) (defvar w (char-code #\w)) (defun w (c) (if (= c w) (lambda (x) (lambda (y) x)) (lambda (x) (lambda (y) y)))) (defun in (e) (let ((c (read-char))) (if c (char-code c) e)))
こんな感じか。
どっか間違ってるかも。
あとで検証。
追記
ソース読み直したらw関数というか文字の扱いが大分違ったorz
あとで書く ->書いた