こう書きたい
if-then-elseはなんだか嫌だなぁと。でもガードじゃなくてワンライナーで書きたいなぁと。
出来るのかもしれないが、知らないので。教えて・・・。
>[x>5?1:2 | x <- [1..10]] >[2,2,2,2,2,1,1,1,1,1]
無理だ
そもそも":"はリストを生成する為の演算子なので上のような書き方はシンタックスエラーで死ぬ。
"1:2"は"1:2:[]"と書け!と怒られる。
なので諦める。":"は諦める。
似非三項演算子
結果こうなった。
x ? (a, b) = if x then a else bif-thenで返す値とelseで返す値をペアで取る事にした。
使う時はこう
>[(x>5)?(1,2) | x <- [1..10]] >[2,2,2,2,2,1,1,1,1,1]
やったぜ!
0 件のコメント:
コメントを投稿