我对 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]
我不确定为什么上面列出的功能不起作用。
isBlue
等人。不是要打印的值;它们只是变量名,这些变量以函数作为它们的值。您无法打印函数。