RubyとLispの切っても切れない関係

公開日:

東京都目黒区株式会社ドリコムセミナールーム&カフェで開催された『平成Ruby会議01』で飛び入りでライトニングトーク(5分)として発表しました。

Download PDF

スライドテキスト

Page 1

RubyとLispの切っても切れない関係

Why Emacs Lisp is an acceptable Ruby?

平成Ruby会議01

2019-12-14 #heiseirubykaigi

Page 2

お前誰よ
うさみけんた (@tadsan)

/ Zonu.EXE

  • GitHub/Packagistでは id: zonuexe
    • ピクシブ株式会社 pixiv運営本部
  • Emacs Lisper, PHPer, Rubyist
  • Emacs PHP Modeのメンテナ引き継ぎました
    • 好きなリスプはEmacs Lispです
    • Qiitaに記事を書いたり変なコメントしてるよ

Page 3

Page 4

Page 5

Page 6

いちおう2010年頃にparse.yを 弄って遊んでたり闇ルビヰ會議
2011で初めて人前でしゃべった り2012年くらいまでRuby札幌 方面に居たりしたルビーストです

Page 7

Page 8

これは重要な
ことですが

Page 9

平成元年1月 生まれです

Page 10

Page 11

ちなみにスライドの本文書体はゲームプラットフォームenza様で絶賛運営されているアイドルマスター シャイニーカラーズというゲームで採用されている FOT-ハミング Stdです

Page 12

事前知識

Page 13

この話で言及して いる“Lisp”は複数 の言語の総称です

Page 14

C言語

puts("foo")

Page 15

Ruby

puts "foo"

Page 16

Lisp

(puts "foo")

Page 17

(imaginary)

(((((LISP)))))

Page 18

Common Lisp,
Scheme, Clojure,
Emacs Lisp

Page 19

それぞれの言語は C#とJavaくらい
離れている

Page 20

あとLTなのでかっ
とばしてきます

Page 21

さて

Page 22

‒TextbringerでつくるTextbringer

https://github.com/shugo/heiseirk01/blob/master/README.md

Page 23

shugoさんの発表 楽しかったですね

Page 24

Page 25

‒TextbringerでつくるTextbringer

https://github.com/shugo/heiseirk01/blob/master/README.md

Page 26

もっと強い混沌の 力を手に入れたく
はないか?

Page 27

Page 28

‒TextbringerでつくるTextbringer

https://github.com/shugo/heiseirk01/blob/master/README.md

Page 29

Textbringerの
あらゆる機能はRuby
で実装されている

Page 30

Emacsの
あらゆる機能はLisp
で実装されている

Page 31

Textbringerの機能開発 時はeval_bufferで編集
中のコードを評価して
動かしながら開発できる

Page 32

Emacsの機能開発時は eval-bufferで編集中の
コードを評価して
動かしながら開発できる

Page 33

ためしにTextbringer
のコードをEmacs
Lispで書いてみよう

Page 34

Page 35

Page 36

ねっ、そっくり

[要出典]

でしょ?

Page 37

🤔

Page 38

たぶん皆様が感じたよりはそっくり
なのですが、RubyとLispの
構文レベルの相似性というよりも TextbringerがEmacsを参考にし たAPIを提供していることが大きい

Page 39

ところで

Page 40

Ruby作者のMatz
が言語おたくである
ことは比較的有名

Page 41

Rubyist Magazine - Rubyist Hotlinks 第1回 まつもとゆきひろ

https://magazine.rubyist.net/articles/0001/0001-Hotlinks.html

Page 42

Gihyo.jp RubyKaigi 2013レポート

https://gihyo.jp/news/report/01/rubykaigi2013/0001

Page 43

amazon.co.jp - まつもとゆきひろ 言語のしくみ

https://www.amazon.co.jp/dp/B01N7JZXMD/

Page 44

時計の針は
平成6年に戻る

Page 45

Page 46

‒「まつもとゆきひろ 言語のしくみ」 2016 まつもとゆきひろ, 日経BP

https://books.google.co.jp/books?id=h9KjDwAAQBAJ&pg=PT67

Page 47

RubyにSymbolとか when/unless文とか
Kernel.#requireがあるのは (Emacs)Lispの影響だと思う

Page 48

Matzから
離れて

Page 49

RuboCop

Page 50

Page 51

Page 52

Page 53

Rubyから Lispを学ぶ

Page 54

Page 55

Page 56

Page 57

最後に私が5年前に 書いたRubyコード を紹介して終ります

Page 58