Page 1
RubyとLispの切っても切れない関係
Why Emacs Lisp is an acceptable Ruby?
平成Ruby会議01
2019-12-14 #heiseirubykaigi
公開日:
by USAMI Kenta @tadsan
に東京都目黒区の株式会社ドリコムセミナールーム&カフェで開催された『平成Ruby会議01』で飛び入りでライトニングトーク(5分)として発表しました。
RubyとLispの切っても切れない関係
Why Emacs Lisp is an acceptable Ruby?
平成Ruby会議01
2019-12-14 #heiseirubykaigi
お前誰よ
うさみけんた (@tadsan)
/ Zonu.EXE
いちおう2010年頃にparse.yを 弄って遊んでたり闇ルビヰ會議
2011で初めて人前でしゃべった り2012年くらいまでRuby札幌 方面に居たりしたルビーストです
これは重要な
ことですが
平成元年1月 生まれです
ちなみにスライドの本文書体はゲームプラットフォームenza様で絶賛運営されているアイドルマスター シャイニーカラーズというゲームで採用されている FOT-ハミング Stdです
事前知識
この話で言及して いる“Lisp”は複数 の言語の総称です
C言語
puts("foo")
Ruby
puts "foo"
Lisp
(puts "foo")
(imaginary)
(((((LISP)))))
Common Lisp,
Scheme, Clojure,
Emacs Lisp
それぞれの言語は C#とJavaくらい
離れている
あとLTなのでかっ
とばしてきます
さて
‒TextbringerでつくるTextbringer
https://github.com/shugo/heiseirk01/blob/master/README.md
shugoさんの発表 楽しかったですね
‒TextbringerでつくるTextbringer
https://github.com/shugo/heiseirk01/blob/master/README.md
もっと強い混沌の 力を手に入れたく
はないか?
‒TextbringerでつくるTextbringer
https://github.com/shugo/heiseirk01/blob/master/README.md
Textbringerの
あらゆる機能はRuby
で実装されている
Emacsの
あらゆる機能はLisp
で実装されている
Textbringerの機能開発 時はeval_bufferで編集
中のコードを評価して
動かしながら開発できる
Emacsの機能開発時は eval-bufferで編集中の
コードを評価して
動かしながら開発できる
ためしにTextbringer
のコードをEmacs
Lispで書いてみよう
ねっ、そっくり
[要出典]
でしょ?
🤔
たぶん皆様が感じたよりはそっくり
なのですが、RubyとLispの
構文レベルの相似性というよりも TextbringerがEmacsを参考にし たAPIを提供していることが大きい
ところで
Ruby作者のMatz
が言語おたくである
ことは比較的有名
Rubyist Magazine - Rubyist Hotlinks 第1回 まつもとゆきひろ
https://magazine.rubyist.net/articles/0001/0001-Hotlinks.html
Gihyo.jp RubyKaigi 2013レポート
https://gihyo.jp/news/report/01/rubykaigi2013/0001
amazon.co.jp - まつもとゆきひろ 言語のしくみ
https://www.amazon.co.jp/dp/B01N7JZXMD/
時計の針は
平成6年に戻る
‒「まつもとゆきひろ 言語のしくみ」 2016 まつもとゆきひろ, 日経BP
https://books.google.co.jp/books?id=h9KjDwAAQBAJ&pg=PT67
RubyにSymbolとか when/unless文とか
Kernel.#requireがあるのは (Emacs)Lispの影響だと思う
Matzから
離れて
RuboCop
Rubyから Lispを学ぶ
最後に私が5年前に 書いたRubyコード を紹介して終ります