Skip to content

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