リストの最後まで行ったら先頭にもどるタイプのデータは、つぎのように実装できる。
type Rot a = ([a], [a])
uncons :: Rot a -> (a, Rot a)
uncons (xs, []) = uncons (xs, xs)
uncons (xs, x : xs') = (x, (xs, xs'))
リストの最後まで行ったら先頭にもどるタイプのデータは、つぎのように実装できる。
type Rot a = ([a], [a])
uncons :: Rot a -> (a, Rot a)
uncons (xs, []) = uncons (xs, xs)
uncons (xs, x : xs') = (x, (xs, xs'))
No replies yet.