[英]Haskell function returns prefix
我正在嘗試在 haskell 中創建一個 function ,它采用謂詞和列表作為 arguments 並返回滿足謂詞的列表的前綴。
測試是:
p1tests = [myTakeWhile (/= ' ') "This is practice." == "This"]
到目前為止我有這個..
myTakeWhile :: (a-> Bool ) -> [a] -> [a]
myTakeWhile [] =[]
myTakeWhile (x:xs)=[] : map (x:) (myTakeWhile xs)
我收到錯誤說除了類型
您需要同時使用謂詞和列表中的元素。 因此,function 應如下所示:
myTakeWhile :: (a -> Bool) -> [a] -> [a]
myTakeWhile _ [] = []
myTakeWhile p (x:xs)
| p x = …
| otherwise = …
因此, px
保護涵蓋了列表的第一項滿足謂詞的情況, otherwise
不滿足。
如果滿足謂詞,我們必須產生x
並在列表的尾部遞歸。 我一直在填寫…
作為練習。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.