対話式で変数を作る

  • Haskellで「値代入したい!」(代入はできなくて、値束縛はできる)
let v = [[3,2,1],[0,4,5]]
  • 非対話式なら(この資料(こちら)に出ている列車の問題を解くための助走)以下のようなものをhoge.hsに書いてloadすればよい
initTrain :: [[Int]]              -- テスト用データ
initTrain = [[3,1,4,5,2,6,7,0]] ++ (replicate 10 [])
*Main> take 3 initTrain
[[3,1,4,5,2,6,7,0],[],[]]
  • こちらでは、整数のリストのリストの要素数を無限にできる!
initTrain :: [[Int]]              -- テスト用データ
initTrain = [[3,1,4,5,2,6,7,0]] ++ (repeat [])
    • "drop 4 initTrain"とすると、「無限」に長いリストの5番目以降を表示してしまうので注意
    • 以下ではinitTrainリストの前400個を取り出して、それの後半部分を取り出しているので、有限個。
*Main> drop 4 (take 400 initTrain)
[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]]
*Main>