Functional
Music
COMPOSITION
@nagachika
2015.11.8
大江戸Ruby会議05
Theme
- Ruby New Feature
- Functional Programming
- Audio Programming
Theme
- Ruby New Feature
- Functional Programming
- Audio Programming
Functional
Programming
Language
Haskell?
Erlang?
OCaml?
Scala?
LazyK!!
LazyK
- Purely Functional
- Stream based I/O
- SKI Combinator Calculus
Fukuoka.rb 読書会
Understanding Computation
Understanding Computation
SKI Combinator Calculus
- I x = x
- K x y = x
- S x y z = (x z) (y z)
Hello, World! (LazyK)
(K(S(SI(K(S(K((S(S(KS)K))(S(S(KS)K)I)))(S(K(S(K((S(S(KS)K))(S(S(KS)K)I)))(S(K(S(K(S(S(KS)K)I))(S(K(S...
RazyK
LazyK Interpreter implemented by pure Ruby
https://rubygems.org/gems/razyk
RazyK
RazyK
5年前
Inspired by
Inspired by
http://tatsu-zine.com/books/esoteric-language-programing-in-ruby
復刻版 <3<3
RazyK
• dump reduction steps
• Browser Interface
• Step by Step Reduction
• Visualize Combinator Calculus
RazyK (Browser Interface)
RazyK (Spoiler)
• Integer Literal ($0, $1, $2..)
• String Literal ( Hello, World!n )
Hello, World (RazyK)
$ razyk -e K Hello, World!n
Hello, World!
String Literal 最高!!
mame
日本屈指の変態的プログラマ

(ほめ言葉)
日本で一番すごい実用的じゃ
ないプログラムを書いてる人
「もっとやれ」
ということか…
RazyK
Version 0.2.0 Released!
• Renew Browder Interface
• Eliminate graphviz dependency
• Less spoiler
• Add Audio Stream ...
DEMO
$ razyk --audio examples/air_on_the_g_string.lazy
Functional
Music
COMPOSITION
Functional
Music
COMPOSITIONPlayer
Functional Music Composition
Nächste SlideShare
Wird geladen in …5
×

Functional Music Composition

496 Aufrufe

Veröffentlicht am

LT at OedoRubyKaigi05 2015.11.8
http://rubygems.org/gems/razyk
http://github.com/nagachika/razyk

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
496
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
8
Aktionen
Geteilt
0
Downloads
4
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Functional Music Composition

  1. 1. Functional Music COMPOSITION @nagachika 2015.11.8 大江戸Ruby会議05
  2. 2. Theme - Ruby New Feature - Functional Programming - Audio Programming
  3. 3. Theme - Ruby New Feature - Functional Programming - Audio Programming
  4. 4. Functional Programming Language
  5. 5. Haskell?
  6. 6. Erlang?
  7. 7. OCaml?
  8. 8. Scala?
  9. 9. LazyK!!
  10. 10. LazyK - Purely Functional - Stream based I/O - SKI Combinator Calculus
  11. 11. Fukuoka.rb 読書会
  12. 12. Understanding Computation
  13. 13. Understanding Computation
  14. 14. SKI Combinator Calculus - I x = x - K x y = x - S x y z = (x z) (y z)
  15. 15. Hello, World! (LazyK) (K(S(SI(K(S(K((S(S(KS)K))(S(S(KS)K)I)))(S(K(S(K((S(S(KS)K))(S(S(KS)K)I)))(S(K(S(K(S(S(KS)K)I))(S(K(S(K(S(S(KS)K)I)) (S(K(S(K(S(S(KS)K)I))(S(KI)I)))I)))I)))I)))I))))(K(S(SI(K(S(K((S(S(KS)K))(S(K(S(S(KS)(S(KK)(S(K(S(S(KS)K)I))I)))(S(K((S(S(KS)K)) (S(S(KS)K)I)))I)))(S(K(S(K(S(S(KS)(S(KK)(S(K(S(S(KS)K)I))I)))(S(K((S(S(KS)K))(S(S(KS)K)I)))I)))(S(K(S(K(S(S(KS)K)I))(S(K(S(K(S(S(KS)K)I)) (S(KI)I)))I)))I)))I))))(S(KI)I))))(K(S(SI(K(S(K((S(S(KS)K))(S(S(KS)K)I)))(S(K(S(K((S(S(KS)K))(S(S(KS)K)I)))(S(K(S(K((S(S(KS)K))(S(S(KS)K)I))) (S(K(S(K(S(S(KS)K)I))(S(K(S(K(S(S(KS)K)I))(S(KI)I)))I)))I)))I)))I))))(K(S(SI(K(S(K((S(S(KS)K))(S(S(KS)K)I)))(S(K(S(K((S(S(KS)K))(S(S(KS)K)I))) (S(K(S(K((S(S(KS)K))(S(S(KS)K)I)))(S(K(S(K(S(S(KS)K)I))(S(K(S(K(S(S(KS)K)I))(S(KI)I)))I)))I)))I)))I))))(K(S(SI(K(S(K((S(S(KS)K)) (S(K((S(S(KS)K))(S(S(KS)K)I)))(S(K(S(K((S(S(KS)K))(S(S(KS)K)I)))(S(K(S(K(S(S(KS)K)I))(S(K(S(K(S(S(KS)K)I))(S(KI)I)))I)))I)))I)))) (S(K(S(K((S(S(KS)K))(S(S(KS)K)I)))(S(KI)I)))I))))(K(S(SI(K(S(K((S(S(KS)K))(S(K(S(S(KS)(S(KK)(S(K(S(S(KS)K)I))I)))(S(K((S(S(KS)K)) (S(S(KS)K)I)))I)))(S(K(S(K(S(S(KS)K)I))(S(KI)I)))I))))(S(K(S(K(S(S(KS)K)I))(S(K(S(K(S(S(KS)K)I))(S(KI)I)))I)))I))))(K(S(SI(K(S(K(S(S(KS)K)I)) (S(K(S(K(S(S(KS)K)I))(S(K(S(K(S(S(KS)K)I))(S(K(S(K(S(S(KS)K)I))(S(K(S(K(S(S(KS)K)I))(S(KI)I)))I)))I)))I)))I))))(K(S(SI(K(S(K((S(S(KS)K)) (S(K((S(S(KS)K))(S(K((S(S(KS)K))(S(S(KS)K)I)))(S(K(S(K(S(S(KS)K)I))(S(KI)I)))I))))(S(K(S(K(S(S(KS)K)I))(S(K(S(K(S(S(KS)K)I)) (S(KI)I)))I)))I))))(S(K(S(K((S(S(KS)K))(S(S(KS)K)I)))(S(KI)I)))I))))(K(S(SI(K(S(K((S(S(KS)K))(S(K((S(S(KS)K))(S(S(KS)K)I))) (S(K(S(K((S(S(KS)K))(S(S(KS)K)I)))(S(K(S(K(S(S(KS)K)I))(S(K(S(K(S(S(KS)K)I))(S(KI)I)))I)))I)))I))))(S(K(S(K((S(S(KS)K))(S(S(KS)K)I))) (S(KI)I)))I))))(K(S(SI(K(S(K((S(S(KS)K))(S(K((S(S(KS)K))(S(S(KS)K)I)))(S(K(S(K((S(S(KS)K))(S(S(KS)K)I)))(S(K(S(K(S(S(KS)K)I)) (S(KI)I)))I)))I))))(S(K(S(K((S(S(KS)K))(S(S(KS)K)I)))(S(K(S(K(S(S(KS)K)I))(S(KI)I)))I)))I))))(K(S(SI(K(S(K((S(S(KS)K))(S(S(KS)K)I))) (S(K(S(K((S(S(KS)K))(S(S(KS)K)I)))(S(K(S(K((S(S(KS)K))(S(S(KS)K)I)))(S(K(S(K(S(S(KS)K)I))(S(K(S(K(S(S(KS)K)I))(S(KI)I)))I)))I)))I)))I)))) (K(S(SI(K(S(K(S(S(KS)(S(KK)(S(K(S(S(KS)K)I))I)))(S(K((S(S(KS)K))(S(S(KS)K)I)))I)))(S(K(S(K(S(S(KS)(S(KK)(S(K(S(S(KS)K)I))I))) (S(K((S(S(KS)K))(S(S(KS)K)I)I)))(S(K(S(K(S(S(KS)K)I))(S(K(S(K(S(S(KS)K)I))(S(KI)I)))I)))I)))I))))(K(S(SI(K(S(K((S(S(KS)K))(S(K(S(S(KS)(S(KK) (S(K(S(S(KS)K)I))I)))(S(K((S(S(KS)K))(S(S(KS)K)I)))I)))(S(K(S(K(S(S(KS)K)I))(S(KI)I)))I))))(S(K(S(K((S(S(KS)K))(S(S(KS)K)I)))(S(KI)I)))I)))) (K(S(SI(K(S(K(S(S(KS)(S(KK)(S(K(S(S(KS)K)I))I)))(S(K((S(S(KS)K))(S(S(KS)K)I)))I)))(S(K(S(K(S(S(KS)K)I))(S(KI)I)))I)))) (K(S(SI(K(S(K(S(S(KS)K)I))(S(K(S(K(S(S(KS)K)I))(S(K(S(K(S(S(KS)K)I))(S(K(S(K(S(S(KS)K)I))(S(K(S(K(S(S(KS)K)I))(S(K(S(K(S(S(KS)K)I)) (S(K(S(K(S(S(KS)K)I))(S(K(S(K(S(S(KS)K)I))(S(KI)I)))I)))I)))I)))I)))I)))I)))I))))(KI)))))))))))))))))))))))))))))))
  16. 16. RazyK LazyK Interpreter implemented by pure Ruby https://rubygems.org/gems/razyk
  17. 17. RazyK
  18. 18. RazyK 5年前
  19. 19. Inspired by
  20. 20. Inspired by http://tatsu-zine.com/books/esoteric-language-programing-in-ruby 復刻版 <3<3
  21. 21. RazyK • dump reduction steps • Browser Interface • Step by Step Reduction • Visualize Combinator Calculus
  22. 22. RazyK (Browser Interface)
  23. 23. RazyK (Spoiler) • Integer Literal ($0, $1, $2..) • String Literal ( Hello, World!n )
  24. 24. Hello, World (RazyK) $ razyk -e K Hello, World!n Hello, World!
  25. 25. String Literal 最高!!
  26. 26. mame 日本屈指の変態的プログラマ
 (ほめ言葉) 日本で一番すごい実用的じゃ ないプログラムを書いてる人
  27. 27. 「もっとやれ」 ということか…
  28. 28. RazyK Version 0.2.0 Released! • Renew Browder Interface • Eliminate graphviz dependency • Less spoiler • Add Audio Stream Mode!!
  29. 29. DEMO $ razyk --audio examples/air_on_the_g_string.lazy
  30. 30. Functional Music COMPOSITION
  31. 31. Functional Music COMPOSITIONPlayer

×