フローチャート。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
最後のフローチャートをどのように作成しますか?