Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

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 ]

*