gpt4 book ai didi

haskell - 流程图函数式编程语言

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

流程图。这种古老的做法已经使用了1000多年,被强加给我们这些穷学生,没有任何用处(或者我认为如此)。它可能适用于命令式、顺序运行的语言,但我心爱的函数式编程呢?

可悲的是,我不得不为我的程序创建一个流程图(用 Haskell 编写)。

我想这样的事情很容易:

main :: IO ()
main = do
someInput <- getLine
let upped = map toUpper someInput
putStrLn upped

这只是 3 个顺序步骤,获取数据、大写数据、输出数据。

这次情况看起来更糟:
main :: IO ()
main = do
someInput <- fmap toUpper getLine
putStrLn someInput

或者像这样:
main :: IO ()
main = interact (map toUpper)

好的,那是 IO,你可以像命令式语言一样处理它。纯函数呢?

一个实际的例子:
onlyMatching :: String -> [FilePath] -> [FilePath]
onlyMatching ext = filter f
where f name = lower ('.' : ext) == (lower . takeExtension $ name)
lower = map toLower

你会如何流程图最后一个?

最佳答案

我不认为代表流程(因此状态变化)的流程图适用于主要是无状态的 FP。

但我认为您可以显示电路图(?)。

        ext
_ | ______________________________________________
| | |
| `-> [ '.' : ] -------> [ lower ] --.__ |
| __ [ == ] ----->
name --> [ takeExtension ] ---> [ lower ] --' |
|__________________________________________________|
f

你最好咨询一下导师。

关于haskell - 流程图函数式编程语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2758679/

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