Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

lvescriptを更に闇深く。prelude.lsで関数型の深淵を覗き見る その6:リスト・とりまとめ編

prelude.ls記事の続き、今回は入れ込んだリストから一個のリストを生成する関数です

実際のところ

多重リストを平坦にするflatten

入れ込んだリストを一本化するflatten。
有名どころのLLなら大抵搭載されてるアレです。

flatten [1, [[2], 3], [4, [[5]]]] #=> [1, 2, 3, 4, 5]

一致しない要素だけ返すdifference

複数のリストを渡し、
最初のリストを基準にして以降のリストに登場しない要素を抽出する関数もあります。

difference [2 3 4 5] [5 2 10] [1]
 #=> [ 3, 4 ]

*