我有 2 個練習,但我不明白如何讓它們作業。我試圖弄清楚,但我不明白。我能得到一些幫助嗎?
- 指定從串列生成有序對的函式。該對的第一個元素是串列的第一個元素,該對的第二個元素是串列尾部的一部分。我們可以假設串列不為空。
headTail :: [a] -> (a, [a])
headTail (l: ls) = (headTail l, [ls])
- 給出獲取兩個串列并生成有序對的函式,其中的第一個元素是第一個串列的第一個元素,第二個元素是第二個串列的第一個元素!我們可以假設沒有一個串列是空的。
doubleHead :: [a] -> [b] -> (a, b)
doubleHead (l:ls) =
uj5u.com熱心網友回復:
我會在這兩種情況下使用模式匹配。
(l:ls)將串列的第一個元素分配給l,將其余元素分配給ls。您可以按照說明將它們作為元組回傳。
headTail :: [a] -> (a, [a])
headTail (l:ls) = (l, ls)
這里我們只關心兩個串列的第一個元素。因此,我們將它們模式匹配為x,并且y根本不捕獲其余部分(由 指示_)。并將它們作為元組回傳。
doubleHead :: [a] -> [b] -> (a, b)
doubleHead (x:_) (y:_) = (x, y)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/322330.html
上一篇:跟蹤已處理的串列
下一篇:我的140個元素串列只列印第一個
