簡體   English   中英

Haskell(a-> a-> Bool)函數定義

[英]Haskell (a -> a -> Bool) function definition

嗨,我是haskell的新手,並且對函數定義不滿意。 在作業中,我需要使用此功能

insort :: [a] -> (a -> a -> Bool) -> [a]
insort [] _     = []
insort (x : xs) f   =   ins x (insort xs f)
                        where
                        ins x []    = [x]
                        ins x (y : ys) =    if (f x y) 
                                            then x : y : ys
                                            else y : ins x ys

但我不知道如何使用它..對我來說,我應該是:

insort [1,2,3,5,6] (4 > 3)

並感謝您的幫助!

第二個參數應該是一個接受a -> a-> Bool (例如,大於)的函數。 該函數將被稱為列表中的每個元素。

您應該像這樣使用它:

insort [1, 2, 3, 4, 5, 6] (>)

insort的第二個參數的類型為(a -> a -> Bool) insort (a -> a -> Bool) insort (a -> a -> Bool) 這是采用兩個a並返回Bool的函數的類型。 這里aInt

表達式4 > 3 (僅是(>) 4 3語法糖)就是Bool類型。 可憐的東西。

您需要將(>)函數傳遞給insort

insort [1, 2, 3, 4, 5, 6] (>)

暫無
暫無

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

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