10分コーディング
たまたま目についたのでやってみた。
main = print $ cards 4 "123412341234123412" cards n str = [ [str!!m | m<-[0..len-1], m`mod`n == i] | i<-[0..n-1] ] where len = length str - length str `mod` n
Haskellではfor文もwhile文もif文さえも使わないね!
内包表記がネストしてるけど外側のそれはfor文の代わりなので、そんな分かりにくくはないと思う。
何より必要条件でザクザク絞っていくという感覚はなかなか新鮮。
や、今までも必要条件で絞っていくしかなかったのだけど。ザクザク感がないよね。if文には。
まあ時間は10分どころじゃなくかかっていたりする。
どうやらHaskellの内包表記に無限リストは使わない方がいいぽい?
[n | n<-[1..], n<10]