Grass

Grass on Grass

みどりの日なのでGrass書きました。今回はGrass言語インタプリタ上で動くGrass言語インタプリタ。 https://github.com/youz/Grass_on_Grass Grassで実装されたGrassインタプリタ この8kbとちょっとの草原を手で植えるのはさすがに厳しいので Grasspiler を使…

Compile Time Grass to D CompilerでGrassを実行可能バイナリにコンパイル

みどりの日恒例 Grass Hackathon (2年ぶり2回目、そして記事は2日遅れ) D言語版のGrassインタプリタと、コンパイル時にGrassコードをD言語に変換し、結果をmixinするという流れでGrassを実行可能バイナリにコンパイルするモノを作ってみました。https://gith…

grass.cyのコマンドライン実行以外の使い方

Grass interpreter for Cyan language - * *scrap* grass.cyはGrassによる関数生成ユーティリティとしても使えます。 grass_eval_string関数は、与えられたコードの最後のapplicationの結果やabstraction定義をクロージャとして返します。 cyan> require "gr…

Grass interpreter for Cyan language

書きかけのまま放置してたCL用GrassリーダーマクロをCyanに移植しました。とりあえず動いたのでリリース。 https://github.com/youz/cyan-scripts/blob/master/grass.cy => 本家 Grass the grass-planting programming language 使い方(ソースより) # Usage:…

vネタばれ

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を高速化してみた。

Grass で quine - まめめも まだカラクリの部分がちゃんと読めてないけど、構造は分かってきた。しかしWとvの作り方の時点で真似のできる発想じゃない、というか面白すぎる。ただWとvの出力時に毎回succしてて重い(サイズ削るのを優先してただけかもしれない…

Grassでクロージャ

折角だからGrassでクロージャのチュートリアルを書いてみよう。 ソースコメント中のcharはプリミティブのwと思ってください。 ; stack bottom ; in ; char ; succ ; out wwWWwWWWwv ; チャーチ数の<2> (λf x . f (f x))を定義 Www ; <2>(スタックのtop)にout…

あなごる echo

no errorで32バイトすげー!と思ったら http://d.hatena.ne.jp/kikx/20080907#1220738068 なるほどwww

あなごる v

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は似た様な物を書いたから一番乗り…

あなごる 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

会場近くの漫画喫茶から。 新幹線の中でGrassでLLGolf Hole 8 準備 - * *scrap*のコードをirieさん作のgrass.el用に移植。 大宮までの1時間で9割がた書けて、会場についてからデバッグして完成。 wwWWwwWwwvwwWWWwWWWwvwWWwWwvwwwWWWwwWwwWWWWwvwvwWWwwwvww…

GrassでLLGolf Hole 8 準備

(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ユーザー会(仮)) サイン貰おう。ところでこのユーザー会どこから入会できますか?

Emacs LispでGrass

irie @ ウィキ - grass.el via: http://d.hatena.ne.jp/higepon/20080801/1217594756すげーwww しかも豪華な機能満載wwwww ソース読んで勉強させてもらおう。そしてxyzzyに移植したい。 試してみたwww ヤバいwww明日山行くのにGrass書きたくてしょうがないwww…

Grassでecho

アナゴル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プログラム

世界で最初のGrassプログラム - Garage uenoB 実行速度が全然違うなー(短い方が遅い) アナゴルとかでGrass使えるようにならないかなあ(ぉ アナゴルってちゃんと見たことなかったけど anarchy golf Language is selected by extension. Supported types are…

ラムダ計算遊び用コード まとめ

昨日見つけたページに倣ってλ項の名前には全部頭に%をつけて、ついでに左から適用してく関数を%としてみた。 とりあえずxyzzyとSBCLで動いてるけど、真偽値の辺りちゃんとテストしてない。 ; utility (defun % (&rest arg) (reduce #'funcall arg)) (defun $…

GrassのHello World

id:nishiohirokazuさんが割と直球で書いていたので、小細工しつつ2時間ほどがんばって草植えてみたwww Helloworldに2時間とかwwwwwww改行除くと751→738文字。 wvwWwwwwWwwwwwwWWWWWwWWWWWwwwwvwwwwWWWwwWwwWWWWWWwwwwWwwvwWWwWwwvwwWWwvwWWWwwWW WWWwwwWwwWW…

Grass

Ruby版のインタプリタのソースコードが大分読めてきたもんで、コレもしかして自分でもなんとか書けるんじゃ? と思ってとりあえずパーサを書き始めたところにScheme版キター!! 実装の動機の1行目吹いた。参考にさせてもらおう。意味論のとこの解説が凄くあり…

暇人がひたすら草を植える日記

Grass4日目。楽しくなってきた。wから始めて文字コードをインクリメントしながら256文字出力。 wWWwWWWWwv ; out&succ wwWWwWWWwv ; 2 ;main wWWww ; 2 2 : 4 Ww ; _ _ : 256 Wwwwww ; _ out&succ Wwwwwwwwww ; _ charコメント部分、:の左側は関数適用の内…

Grassとラムダ計算とLisp

Lispのlambda式の使い方が分かってきた頃に書き溜めたラムダ計算遊び用のコードと組み合わせてみる。 まず、繰り返し関数適用してく時にCommonLispだとfuncallが大変ウザくなるので、省略するための簡単なユーティリティー関数。 (defun app (&rest arg) (re…

Grass再挑戦

ちょっと草植えときますね型言語 Grass 日本語版解説 最初に見たときは面白そうなのにほとんど理解できなくて悲しかったけど、λ計算とLispの基礎をかじった今なら少しは書けそうだ。で、一昨日ちょっと書いたプリミティブ関数を書き直し。 w (文字関数) 文字…

ニワン語による最初の言語処理系?

こっちも貼っとく。 ( Grass the grass-planting programming language ) 初めて触った関数型言語がコレなんだけど、FizzBuzzが書けません。 これもzick氏が作ったのかなと思ったけど違うみたい。 Grassのページからもリンクしてあったけど、原作者製でもな…