This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| -- is there a GHC language extension that would | |
| -- let me break up function definitions like this: | |
| f1 some_pattern = expression1 | |
| f2 some_other_pattern = expression2 | |
| f1 yet_another_pattern = expression3 | |
| f2 another_pattern = expression4 | |
| --instead of having to group them together like this: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| get ["echo", word] | |
| | length word == 4 = body "4 letter word" >> status 403 | |
| | otherwise = body word |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| {-# LANGUAGE TypeFamilies, QuasiQuotes, TemplateHaskell #-} | |
| import Yesod | |
| data Echo = Echo | |
| mkYesod "Echo" [$parseRoutes| | |
| /echo/#String EchoR GET | |
| |] | |
| instance Yesod Echo where approot _ = "" | |
| getEchoR s | |
| | length s == 4 = permissionDenied "Forbidden: 4 letter word" | |
| | otherwise = return $ RepPlain $ toContent s |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import qualified Data.ByteString as B | |
| main :: IO () | |
| main = do | |
| td <- newTemplateDirectory' "templates" emptyTemplateState | |
| quickServer $ templateHandler td defaultReloadHandler $ \ts -> | |
| route [ ("echo/:s", echoHandler) | |
| ] <|> | |
| templateServe ts <|> | |
| dir "static" (fileServe ".") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| infixl 9 ==> | |
| f ==> g = g $ f | |
| lee = Author "Gentry Lee" | |
| clarke = Author "Arthur C. Clarke" | |
| heinlein= Author "Robert Heinlein" | |
| rama = Book "Garden of Rama" | |
| catalog = | |
| Catalog Map.empty Map.empty ==> | |
| associate lee rama ==> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| module Library | |
| (Author, | |
| Book, | |
| AuthorIndex, | |
| BookIndex, | |
| Catalogued, | |
| Catalog, | |
| addAuthor, | |
| addBook, | |
| associate, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| fac n = [1..] ==> take n ==> foldr (*) 1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| infixl 9 ==> | |
| f ==> g = g $ f |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| fac n = foldr (*) 1 $ take n $ [1..] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| clarke = createAuthor "Arthur C. Clarke" ["Garden of Rama"] | |
| lee = createAuthor "Gentry Lee" ["Garden of Rama"] | |
| gardenAuthorsAccordingToClarke = map name $ authors $ head $ books clarke | |
| -- ["Arthur C. Clarke"] | |
| gardenAuthorsAccordingToLee = map name $ authors $ head $ books lee | |
| -- ["Gentry Lee"] |