Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Functional Music Composition

721 Aufrufe

Veröffentlicht am

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

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

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

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

×