Grass
みどりの日なのでGrass書きました。今回はGrass言語インタプリタ上で動くGrass言語インタプリタ。 https://github.com/youz/Grass_on_Grass Grassで実装されたGrassインタプリタ この8kbとちょっとの草原を手で植えるのはさすがに厳しいので Grasspiler を使…
みどりの日恒例 Grass Hackathon (2年ぶり2回目、そして記事は2日遅れ) D言語版のGrassインタプリタと、コンパイル時にGrassコードをD言語に変換し、結果をmixinするという流れでGrassを実行可能バイナリにコンパイルするモノを作ってみました。https://gith…
Grass interpreter for Cyan language - * *scrap* grass.cyはGrassによる関数生成ユーティリティとしても使えます。 grass_eval_string関数は、与えられたコードの最後のapplicationの結果やabstraction定義をクロージャとして返します。 cyan> require "gr…
書きかけのまま放置してたCL用GrassリーダーマクロをCyanに移植しました。とりあえず動いたのでリリース。 https://github.com/youz/cyan-scripts/blob/master/grass.cy => 本家 Grass the grass-planting programming language 使い方(ソースより) # Usage:…
http://golf.shinh.org/p.rb?v#Grass grass.el形式で '( (abs rec (f c) ((app succ c . sc) (app w sc . v?) (app v? c) (app 1 f) ;c or f (app 1 1) ;true or f f (app 1 sc) ;(true sc) or (f f sc) (app out 3) ;(out sc) or error )) (app rec rec) (a…
Grass で quine - まめめも まだカラクリの部分がちゃんと読めてないけど、構造は分かってきた。しかしWとvの作り方の時点で真似のできる発想じゃない、というか面白すぎる。ただWとvの出力時に毎回succしてて重い(サイズ削るのを優先してただけかもしれない…
折角だからGrassでクロージャのチュートリアルを書いてみよう。 ソースコメント中のcharはプリミティブのwと思ってください。 ; stack bottom ; in ; char ; succ ; out wwWWwWWWwv ; チャーチ数の<2> (λf x . f (f x))を定義 Www ; <2>(スタックのtop)にout…
no errorで32バイトすげー!と思ったら http://d.hatena.ne.jp/kikx/20080907#1220738068 なるほどwww
http://www.shinh.org/p.rb?v#Grass 真面目に足し算してったら既に回答してた人たちの3倍近い打数になっちゃってあるぇー(・ε・)? じゃあPRED使ってみようか、と書き始めてしばらくした所でもっと単純な方法に気付き、書き直したら1位の人を1byte差でかわせ…
Grassが追加されてた! (via. http://rubyist.g.hatena.ne.jp/hatecha/20080906/p1) とりあえず、これ以上短くならないだろうと思うnopとechoを投稿。 他にできそうなのは…ASCII from 0x01 to 0x7f と reverse entire inputは似た様な物を書いたから一番乗り…
http://www.shinh.org/p.rb?reverse+entire+input echoを改造して wwWWwWWWwv ;2 Wwww ;2succ WWw ;4succ WWWw ;8succ Wwwwwwww ;(8succ w) -> del vw ;main (self) WWWWWWWWWWww ;(in del) -> eof?del:input WWWw ;(del 1) -> eof?true:false Ww ;(1 1) -> …
会場近くの漫画喫茶から。 新幹線の中でGrassでLLGolf Hole 8 準備 - * *scrap*のコードをirieさん作のgrass.el用に移植。 大宮までの1時間で9割がた書けて、会場についてからデバッグして完成。 wwWWwwWwwvwwWWWwWWWwvwWWwWwvwwwWWWwwWwwWWWWwvwvwWWwwwvww…
(load "grass-primitive.l") (defun % (&rest arg) (reduce #'funcall arg)) (defun $ (&rest arg) (reduce #'funcall arg :from-end t)) (defvar y (lambda (f) ($ (lambda (g) ($ f (lambda (x) (% g g x)))) (lambda (g) ($ f (lambda (x) (% g g x))))))…
http://ll.jus.or.jp/2008/program/lt ・ちょっと草植えときますね型言語Grass: うえのかつひろ(日本Grassユーザー会(仮)) サイン貰おう。ところでこのユーザー会どこから入会できますか?
irie @ ウィキ - grass.el via: http://d.hatena.ne.jp/higepon/20080801/1217594756すげーwww しかも豪華な機能満載wwwww ソース読んで勉強させてもらおう。そしてxyzzyに移植したい。 試してみたwww ヤバいwww明日山行くのにGrass書きたくてしょうがないwww…
アナゴル2問目のecho wWWWWWwWWWwWWWwwwエラー吐いて終わってもOKならこれでいいんだけど。 ちゃんと書くと wwWWWwwWWwwv wwWWwWWWwv wwWWwWWWwWWWWwv wWWwwwWwwwwwwwWwwwwwwwwwWWWWWWWWWWWwWwwWwWwwwwwwwwwwWwwwwWwwwwwwwww長い。
(load "lambda-calc.l") (load "grass-primitive.l") (defvar %floor (lambda (m) (lambda (n) (funcall (% (% %ge m n) (lambda () (let ((c (% %floor (% %sub m n) n))) (% %cons ($ %succ %car c) (% %cdr c)))) (lambda () (% %cons %0 m))))))) (defun…
世界で最初のGrassプログラム - Garage uenoB 実行速度が全然違うなー(短い方が遅い) アナゴルとかでGrass使えるようにならないかなあ(ぉ アナゴルってちゃんと見たことなかったけど anarchy golf Language is selected by extension. Supported types are…
昨日見つけたページに倣ってλ項の名前には全部頭に%をつけて、ついでに左から適用してく関数を%としてみた。 とりあえずxyzzyとSBCLで動いてるけど、真偽値の辺りちゃんとテストしてない。 ; utility (defun % (&rest arg) (reduce #'funcall arg)) (defun $…
id:nishiohirokazuさんが割と直球で書いていたので、小細工しつつ2時間ほどがんばって草植えてみたwww Helloworldに2時間とかwwwwwww改行除くと751→738文字。 wvwWwwwwWwwwwwwWWWWWwWWWWWwwwwvwwwwWWWwwWwwWWWWWWwwwwWwwvwWWwWwwvwwWWwvwWWWwwWW WWWwwwWwwWW…
Ruby版のインタプリタのソースコードが大分読めてきたもんで、コレもしかして自分でもなんとか書けるんじゃ? と思ってとりあえずパーサを書き始めたところにScheme版キター!! 実装の動機の1行目吹いた。参考にさせてもらおう。意味論のとこの解説が凄くあり…
Grass4日目。楽しくなってきた。wから始めて文字コードをインクリメントしながら256文字出力。 wWWwWWWWwv ; out&succ wwWWwWWWwv ; 2 ;main wWWww ; 2 2 : 4 Ww ; _ _ : 256 Wwwwww ; _ out&succ Wwwwwwwwww ; _ charコメント部分、:の左側は関数適用の内…
Lispのlambda式の使い方が分かってきた頃に書き溜めたラムダ計算遊び用のコードと組み合わせてみる。 まず、繰り返し関数適用してく時にCommonLispだとfuncallが大変ウザくなるので、省略するための簡単なユーティリティー関数。 (defun app (&rest arg) (re…
ちょっと草植えときますね型言語 Grass 日本語版解説 最初に見たときは面白そうなのにほとんど理解できなくて悲しかったけど、λ計算とLispの基礎をかじった今なら少しは書けそうだ。で、一昨日ちょっと書いたプリミティブ関数を書き直し。 w (文字関数) 文字…
こっちも貼っとく。 ( Grass the grass-planting programming language ) 初めて触った関数型言語がコレなんだけど、FizzBuzzが書けません。 これもzick氏が作ったのかなと思ったけど違うみたい。 Grassのページからもリンクしてあったけど、原作者製でもな…