0

つまり: 入力: サフィックス ["Hello"] 出力: ['ello','llo','lo','o'] または何か.. 始まりは:

> suffixes :: [a] -> [[a]]
> suffixes [] = []

ちょっと似てると思う

> drop (n+1) (x:xs) = drop n xs
> drop _ xs = xs

しかし、ここでは常に「生き残った」リストの最初の要素を省略したいと思います。始める方法は?多分

> suffixes as = [as!!2:xs] 

または類似?

4

2 に答える 2

5

tailsからData.Listあなたが望むことをします。

tails "hello"
--["hello", "ello", "llo", "lo", "o", ""]--

最初の要素が必要ないように見えるので、できますdrop 1

于 2013-11-13T13:37:12.110 に答える
4

Data.List.tails別のリストのすべてのサフィックスのリストを取得するために使用できdrop 1、出力リストの最初の要素を削除するために使用できます。

import Data.List
suffixes = drop 1 . tails

接頭辞が必要な場合は、 を使用できますData.List.inits。これはプレフィックスを昇順または長さでtails返し、サフィックスを長さの降順で返すことに注意してください。

于 2013-11-13T13:37:29.403 に答える