簡體   English   中英

Haskell function 返回前綴

[英]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.

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