Powered by Rabbit 2.1.8
each task
filter (consumer)
queue pop
call function
Slide 56
Slide 56 text
Powered by Rabbit 2.1.8
# simple netcat on port 8007
sock = tcp_socket("localhost", 8007)
stdin | sock
sock | stdout
simple netcat client
Slide 57
Slide 57 text
Powered by Rabbit 2.1.8
FizzBuzz
Slide 58
Slide 58 text
Powered by Rabbit 2.1.8
# seq(100) returns a stream of numbers from 1 to 100.
# stdout is an output destination.
seq(100) | map{|x|
if (x % 15 == 0) "FizzBuzz"
else if (x % 3 == 0) "Fizz"
else if (x % 5 == 0) "Buzz"
else x
} | stdout
Slide 59
Slide 59 text
Powered by Rabbit 2.1.8
スケジューラー
Slide 60
Slide 60 text
Powered by Rabbit 2.1.8
コア数のスレッド
Slide 61
Slide 61 text
Powered by Rabbit 2.1.8
スレッドループ
ループ
タスクキューから取り出し
実行
全ストリーム終了まで
Slide 62
Slide 62 text
Powered by Rabbit 2.1.8
FizzBuzz
Slide 63
Slide 63 text
Powered by Rabbit 2.1.8
# simple netcat on port 8007
sock = tcp_socket("localhost", 8007)
stdin | sock
sock | stdout
simple netcat client
Slide 64
Slide 64 text
Powered by Rabbit 2.1.8
オブジェクト指向
Slide 65
Slide 65 text
Powered by Rabbit 2.1.8
foo.bar => bar(foo)
Slide 66
Slide 66 text
Powered by Rabbit 2.1.8
namespace
Slide 67
Slide 67 text
Powered by Rabbit 2.1.8
namespace { ... }
Slide 68
Slide 68 text
Powered by Rabbit 2.1.8
new namespace(args)
Slide 69
Slide 69 text
Powered by Rabbit 2.1.8
bar(foo)
Slide 70
Slide 70 text
Powered by Rabbit 2.1.8
bar(foo)
fooのnamespaceにbarがあれば
なければ変数barを実行
Slide 71
Slide 71 text
Powered by Rabbit 2.1.8
bar(foo)
barが無名関数なら実行
barがC関数なら実行
barが配列ならx(0)で先頭要素
Slide 72
Slide 72 text
Powered by Rabbit 2.1.8
Lisp1.5
Slide 73
Slide 73 text
Powered by Rabbit 2.1.8
総称関数を導入したい
Slide 74
Slide 74 text
Powered by Rabbit 2.1.8
Lisp1
Slide 75
Slide 75 text
Powered by Rabbit 2.1.8
ライブラリ
Slide 76
Slide 76 text
Powered by Rabbit 2.1.8
少しずつ充実させてる
Slide 77
Slide 77 text
Powered by Rabbit 2.1.8
seq/repeat/rand
map/each
time
csv
stat/math/sort