Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
Próximos SlideShares
Carregando em…5
×

# Functional Music Composition

814 visualizações

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

• Full Name
Comment goes here.

Are you sure you want to Yes No
• Seja o primeiro a comentar

• Seja a primeira pessoa a gostar disto

### 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
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