てくのろじーたのしー

Haskellぺろぺろ

elixir1.3で入りそうな機能

こんにちは。最近haskellの書き方を忘れてきたtechno-tanoCです。

「elixirのwhenってEitherっぽいよなーでも失敗した瞬間失敗したものが返ってくるから使いづらいなーもう自分でマクロ作ろうかなー」と思いながらネットの海を漁っていたら(海だけに)、whenelse節が入りそうなコミットを見つけました。

そのコミットのリンクはこちら

issueを見た感じ、「マッチに成功した時は良い感じに平坦化してくれるんだけど、エラーケースではイケてない」ってことらしいです。禿同。

具体的には

with {:ok, res} <- 41,
     do: res,
     else: ({:error, error} -> error; res -> res + 1)
#=> 42

みたいになるようです。

加えてこのコミットwithでガードが使えるようになるようです。やったね。

こっちは

with x when x < 2 <- 4,
     do: :ok
#=> 4

のようになるみたいです。