コラッツ予想がとけたらいいな2

自分の考察を書いていきます。

Crystal

Crystal をやってみた その9(ライブラリにしてみた)

前回 ライブラリにしてみた。名前はてきとうです。 使い方 プロジェクト作成 $ crystal init app testtest2 shard.yml に以下を追記 dependencies: esty: github: righ1113/esty コマンドを打つ $ cd testtest2 $ shards install src/testtest2.cr に以下を…

Crystal をやってみた その8(ズンドコキヨシ)

前回 前回の続きで、ズンドコキヨシをやってみた。 # $ crystal zdk.cr # 遅延評価 class Delay(T) def initialize(init_v : T, &block : -> T) @func = block @flag = false @value = init_v end def force unless @flag ret = @func.call @value = ret.nil…

Crystal をやってみた その7(FizzBuzz)

前回 Crystal のドキュメントはこの pdf が良い。 https://crystal-jp.github.io/introducing-crystal/assets/pdfs/introducing-crystal.pdf 前回の続きで、FizzBuzz をやってみた。 # $ crystal fizzbuzz.cr # 遅延評価 class Delay(T) def initialize(init…

Crystal をやってみた その6(短縮マクロ)

前々回 前回 前々回の続きで、遅延評価で囲む部分を、マクロで短縮してみた。 # $ crystal test7.cr # 遅延評価 class Delay(T) def initialize(init_v : T, &block : -> T) @func = block @flag = false @value = init_v end def force unless @flag ret = …

Crystal をやってみた その5(ifをマクロに)

if をマクロにしたらスッキリした。チェーンでは書けなくなるけど。 マクロの引数は先行評価されないからね。 (三項演算子使えば良いじゃんと思ったのは内緒だ) # $ crystal test6.cr macro mif(b, t, e) return {{t}} if {{b}} {{e}} end struct Int # 階…

Crystal をやってみた その4(ちょい更新)

どんな型でも遅延評価できるようにした。 Delay.new には型とその適当な値も渡すようにした。 # $ crystal test5.cr # 遅延評価 class Delay(T) def initialize(init_v : T, &block : -> T) @func = block @flag = false @value = init_v end def force unle…

Crystal をやってみた その3(フィボナッチ)

フィボナッチができた。 # crystal test4.cr # 遅延評価 class Delay def initialize(&block : String -> Int32) @func = block @flag = false #@value = nil @value = 0 end def force unless @flag ret = @func.call "" @value = ret.nil? ? raise("@func.…

Crystal をやってみた その2(メソッドチェーン)

関連 メソッドチェーンでプログラムを書くことを考えている。 Bool や Int にメソッドを追加して、ひとまず今の形になった。 階乗のプログラム # crystal test4.cr # 遅延評価 class Delay def initialize(&block : String -> Int32) @func = block @flag = …

Crystal をやってみた

なんとなく Crystal をやってみた。 環境は Linux(Ubuntu) だ。 インストール https://ja.crystal-lang.org/install/ から。 Windows では WSL を使うようだ。 VSCode https://github.com/crystal-lang-tools/vscode-crystal-lang が良いらしい。 Hello Worl…