Haskell 中阻止函数运行的未知错误

问题描述 投票:0回答:1

我对 haskell 非常陌生,并且收到了一个任务来创建属性列表,然后创建一个函数来输出适用于输入的属性列表,但由于某种原因它只给了我一个错误。下面是代码片段和错误

properties :: [Predicate Thing] properties = [isBlue, isThick, isThin, isOrange, isDisc, isSquare, isBig, isSmall]

propertiesOf :: Thing -> [Predicate Thing] 
propertiesOf x = [props | props <- properties, props x == True]

和错误:

<interactive>:8:1: error: [GHC-39999] * No instance for Show (Thing -> Bool)'arising from a use of print' (maybe you haven't applied a function to enough arguments?) * In a stmt of an interactive GHCi command: print it

我期望输入一个橙色的“东西”,一个圆盘,又大又厚,然后收到输出:

>[isBig, isDisc, isOrange, isThick]

我不确定为什么上面列出的功能不起作用。

function haskell
1个回答
0
投票

isBlue
等人。不是要打印的值;它们只是变量名,这些变量以函数作为它们的值。您无法打印函数。

© www.soinside.com 2019 - 2024. All rights reserved.