ネストされたリストの頭と尾を取得します。私はNestedListの頭と尾を取得しようとしていますが、私はそれができるかどうかはわかりません私はそのように宣言ネストされたリストの種類持って
data NestedList a
= Int a
| List [NestedList a]
deriving (Show, Eq)
を達成された。私の試みは、NestedListの最初のIntを取得するので、本当に成功しませんでした。私のコードは:
headList :: NestedList a -> NestedList a
headList (Int x) = Int x
headList (List x) = head $ map headList x
私はすべてのリストを繰り返し、それぞれからIntを取得するため、これが機能しない理由を理解しています。だから、例えば:
test = List [List [Int 5]] -> headList test = Int 5, instead of List [Int 5]
私は尾のための解決策は、(リストの代わりに、要素の一部を除いて)同様であろうと思いますので、誰も私には、少なくとも作業headList
を得るのを助けることができますか? a
秒の
この宿題はありますか?私にとって、あなたはすでにあなたが最初にやっていることを知らないほど多くを推測しているようです。頭と尾はどういう意味ですか?あなたはリストが何であるか知っていますか?またはInt? (あなたはIntとListの名前をFooとBarに置き換えることができますが、それでも同じことが起こり、混乱は少なくなります) – comonad
「あなたの頭と尾はどういう意味ですか?私は最初の要素を返すことを意味するラケットのcarとcdrのようなものを作ることを目指しています。 - cdrのために - 最初の要素以外のすべてのリスト。 – Xzenon
私の回答に追加するには、これは宿題ではありません。利用可能なドキュメントの多くを理解していないので、私は他のSOの投稿で見つかったものに基づいて推測しています - "haskell "10ページの平坦化リスト(headList関数のベースとして使用しようとしたもので、明らかに動作しなかったものです)が表示されます。 – Xzenon