簡體   English   中英

如何使這個列表解構在 haskell 中運行良好?

[英]How can I make this list deconstruction work well in haskell?

我有 2 個練習,但我不明白如何讓它們工作。 我試圖弄清楚,但我不明白。 我能得到一些幫助嗎?

  1. 指定從列表生成有序對的函數。 該對的第一個元素是列表的第一個元素,該對的第二個元素是列表尾部的一部分。 我們可以假設列表不為空。
headTail :: [a] -> (a, [a])
headTail (l: ls) = (headTail l, [ls])
  1. 給出獲取兩個列表並生成一個有序對的函數,其中的第一個元素是第一個列表的第一個元素,其中的第二個元素是第二個列表的第一個元素! 我們可以假設沒有一個列表是空的。
doubleHead :: [a] -> [b] -> (a, b)
doubleHead (l:ls) = 

我會在這兩種情況下使用模式匹配。

(l:ls)將列表的第一個元素分配給l ,將其余元素分配給ls 您可以按照說明將它們作為元組返回。

headTail :: [a] -> (a, [a])
headTail (l:ls) = (l, ls)

這里我們只關心兩個列表的第一個元素。 因此,我們將它們模式匹配為xy並且根本不捕獲其余部分(由_表示)。 並將它們作為元組返回。

doubleHead :: [a] -> [b] -> (a, b)
doubleHead (x:_) (y:_) = (x, y)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM