Avatar
omochimetaru 3/27/2021 5:33 AM
仕組みとしてはEitherにできるようなより柔軟なものが提供されていて、その上でユーザ実装としてLCTを選択できるね。 (edited)
5:33 AM
Kotlinの方式だと Eitherにすることはできなくって
5:34 AM
自分で両方のブランチで Either.left(A) みたいに書く必要がある。
5:36 AM
Commonly Rejected Changes に挙げられていて、 それで解決できることは他の方法で解決できる ←これは同意だけど if式を導入すると大きなトレードオフがある ←実際どんなデメリットがあるのかはあまりよくわからない
5:38 AM
他の方法については、
わざわざクロージャーを使う
対して記述量が変わるわけでもないので別に良いのでは無いか ifexp みたいな高階関数を書いてちょっと楽しても良い ↓以下のlet初期化スタイルでもそんな困らない let a: Int if ... { a = 3 } else { a = 2 } と思っている