タグ

programmingとRubyに関するkirakkingのブックマーク (2)

  • The Elixir programming language

    All Elixir code runs inside lightweight threads of execution (called processes) that are isolated and exchange information via messages: current_process = self() # Spawn an Elixir process (not an operating system one!) spawn_link(fn -> send(current_process, {:msg, "hello world"}) end) # Block until the message is received receive do {:msg, contents} -> IO.puts(contents) end Due to their lightweigh

    The Elixir programming language
    kirakking
    kirakking 2014/07/10
    Erlang もっと勉強したら遊んでみよう。
  • RubyにHaskellよりも強力なパターンマッチを実装した - Qiita

    require 'egison' include Egison match_all(object) do with(pattern) do ... end end match(object) do with(pattern) do ... end with(pattern) do ... end ... end パターンマッチに成功すると、withに渡されたブロックが実行され、その結果が返されます。 このライブラリのパターンマッチでは、パターンマッチの結果が複数あるということがあります。 match_all構文はそのすべてのパターンマッチの結果それぞれについてwithに渡されたブロックを実行し、すべての結果をまとめた配列を返します。 match_all構文は1つのwith節を取ります。 一方、matchは複数のwith節を取ります。 先頭のwith節のパターンから順番にパターンマッチに成功

    RubyにHaskellよりも強力なパターンマッチを実装した - Qiita
    kirakking
    kirakking 2014/05/28
    Set および Multi Set に対するACマッチングは羨ましい。ruby はよう知らんけんど、object は常に normal form なのだろうか。例えば f(x) = y のとき match ( [ f(x), y ]) do with (List.[ _a, _a )) ... は正しくマッチするのだろうか。
  • 1