【发布时间】:2017-08-31 01:34:23
【问题描述】:
我希望你做得很好。
我昨天开始做一些 Haskell,今天我被困在一个函数上,我想计算每个单词的长度的平均值。我遇到的问题是 medellangd 总是被评估为 0.0,无论如何。无论给出什么输入,变量 spaces 和变量 listLength 都始终为 0.0。
medellangd :: String -> Double
spaces = fromIntegral (raknaBokstaver [] ' ')
listLength = fromIntegral (length [])
medellangd [] = 0.0
medellangd _ = (listLength-spaces) / (spaces + 1)
我在终端中测试了函数 raknaBokstaver :: String -> Char -> Int,它工作得很好。 length 函数也可以正常工作。
我错过了 fromIntegral 功能吗?为什么 spaces 和 listLength 都被评估为 0.0?
提前致谢。
【问题讨论】:
-
嗯,空格被声明为常量
fromIntegral (raknaBokstaver [] ' '),它根本不依赖于任何输入。此外,根据定义,medellangd检查输入列表是否为空,并返回常量 0.0,否则它丢弃输入列表(_所做的)并返回另一个常量。我猜你想要medellangd xs = ...以某种方式使用输入列表xs。 -
你好。好的,我现在一切正常,非常感谢您的回复。
-
顺便说一句,你可以使用 åäö,除非你的编辑器已经过时了。
标签: haskell