Flowcharting. Questa antica pratica antica è in uso da oltre 1000 anni, essendo costretta a farci studenti poveri, senza alcuna utilità (o almeno così credo). Potrebbe funzionare bene con i linguaggi imperativi e in sequenza, ma per quanto riguarda la mia amata programmazione funzionale?Lingue di programmazione funzionale del flowcharting
Purtroppo, sono costretto a creare un diagramma di flusso per il mio programma (scritto in Haskell).
immagino che sia facile per una cosa del genere:
main :: IO()
main = do
someInput <- getLine
let upped = map toUpper someInput
putStrLn upped
che è a soli 3 punti in sequenza, il recupero dei dati, maiuscolo esso, emetterlo.
Le cose sembrano peggio questa volta:
main :: IO()
main = do
someInput <- fmap toUpper getLine
putStrLn someInput
O come questa:
main :: IO()
main = interact (map toUpper)
Va bene, che era IO, è possibile gestire che, come un linguaggio imperativo. Che dire delle pure funzioni?
Un esempio reale:
onlyMatching :: String -> [FilePath] -> [FilePath]
onlyMatching ext = filter f
where f name = lower ('.' : ext) == (lower . takeExtension $ name)
lower = map toLower
Come ti diagramma di flusso che l'ultimo?
Come mai sei costretto a creare un diagramma di flusso per un programma in Haskell? –
@David: Probabilmente qualcosa come "Assegnazione A: crea il seguente programma in una lingua a tua scelta Assegnazione B: crea un diagramma di flusso per il tuo programma" – sepp2k
I diagrammi di flusso non funzionano bene con la valutazione lenta, eh? –