crystal

Ruby と Crystal で違うところ

gazel を書いてみた時に、Ruby と違うなーって感じたところを書いてみる。 型付き わぁお! 型が付いてる!! Tuple が追加された Crystal では Tuple が追加されたので、引数のリストは実際 Tuple になったよ。 除け者にされた then 私は Ruby では then を…

String -> は Proc(A, B).new では表記できない?

3 記事連続で Crystal。 #on の block の型が String -> なんだけど、戻り値の型が不明?なので、Proc(A, B).new { |x| ... } という Proc の表記では書けないっぽい………。 こういう風に書きたいけど、エラーになる: proc = Proc(String, ).new { |x| hoge = …

Crystal では何でもかんでも配列にしてあれこれするのは良くないぜ!

Rake のコードを Crystal に移植していたら、配列を関数の引数として展開できないせいでまずいことが起こった。 def standard_gazel_options(options) [ [ "-A", "--all", "Show all tasks, even uncommented ones (in combination with -T or -D)", ->(valu…

Crystal の Proc

こういう関数があって: def greeting(&block) yield "Hello, World!" end こんな風に渡すことができるよ: # # 通常通りにブロックを渡す。 greeting { |v| puts v } # # puts を Proc にして渡す。 greeting &->puts(String) # # puts を Proc にしたものを…