mirror of
https://github.com/Noratrieb/idris-learning.git
synced 2026-01-14 13:05:02 +01:00
25 lines
691 B
Idris
25 lines
691 B
Idris
module Main
|
|
-- import System.REPL oh god my setup is horrible
|
|
import Data.String
|
|
|
|
average : String -> Double
|
|
average str = let numWords = wordCount str
|
|
totalLength = sum (allLengths (words str)) in
|
|
cast totalLength / cast numWords
|
|
where
|
|
wordCount : String -> Nat
|
|
wordCount str = length (words str)
|
|
allLengths : List String -> List Nat
|
|
allLengths strs = map length strs
|
|
|
|
showAverage : String -> String
|
|
showAverage str = "The average word length is: " ++ show (average str) ++ "\n"
|
|
|
|
|
|
main : IO ()
|
|
main = repl "Enter a string: " showAverage
|
|
|
|
|
|
doubleSum : List Nat -> List Nat
|
|
doubleSum xs = let sum = sum xs in
|
|
[sum, sum]
|