gpt4 book ai didi

Haskell - 找出文本中最长的单词

转载 作者:行者123 更新时间:2023-12-01 07:03:01 25 4
gpt4 key购买 nike

我在编写一个函数来查找文本中最长的单词时遇到了问题。

输入:包含很多单词的字符串。例如:"I am a young man, and I have a big house."
结果将是 5,因为文本中最长的单词有 5 个字母(young 和 house)。

我刚刚开始学习 Haskell。我试过了:

import Char
import List

maxord' (str:strs) m n =
if isAlpha str == True
then maxord'(strs m+1 n)
else if m >= n
then maxord'(strs 0 m)
else maxord'(strs 0 n)

maxord (str:strs) = maxord' (str:strs) 0 0

我要退货 n结果,但我不知道该怎么做,而且代码似乎也有问题。

有什么帮助吗?谢谢

最佳答案

尝试将您的任务拆分为多个子任务。我建议像这样拆分它:

  • 将字符串转换为单词列表。例如,您的示例字符串变为
    ["I","am","a","young","man","and","I","have","a","big","house"]
  • map length在列表中。这将计算字长。例如,步骤 1 中的列表变为
    [1,2,1,5,3,3,1,4,1,3,5]
  • 找出字符数最多的单词。您可以使用 maximum为了这。

  • 您可以使用运算符 (.) 组合这些步骤。将两个函数连接在一起。例如,如果执行步骤 1 的函数被称为 toWords ,您可以在一行中执行整个任务:
    maxord = maximum . map length . toWords
    toWords的实现留给读者作为练习。如果您需要帮助,请随时发表评论。

    关于Haskell - 找出文本中最长的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7541097/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com