1
주어진 this 작은 프로젝트 내가 하스켈을 배우기 위해 사용하고 있는데, 요청 처리기의 코드 생성을 햄릿 템플릿으로 옮기고 싶지만, 물건을 전달하는 방법을 모르겠다.햄릿의 스냅 렌더리스트
Couldn't match expected type `String -> String' with actual type `String' In the return type of a call of `renderHtml' Probable cause: `renderHtml' is applied to too many arguments In the expression: renderHtml ($ (shamletFile "fileList.hamlet")) In an equation for `myTemplate': myTemplate = renderHtml ($ (shamletFile "fileList.hamlet"))
코드 :
site :: Snap()
site =
ifTop (writeBS "hello world") <|>
route [ ("foo", writeBS "ba"),
("view_root_json_files", listRootFilesHandler)
] <|>
dir "static" (serveDirectory ".")
--myTemplate :: String -> String
--myTemplate = renderHtml ($(shamletFile "fileList.hamlet"))
toText :: [FilePath] -> Text
toText = foldMap (flip snoc '\n' . pack)
listRootFilesHandler :: Snap()
listRootFilesHandler = do
filenames <- liftIO $ getDirectoryContents "data"
let filtered_filenames = filter (not . isPrefixOf ".") filenames
writeText $ toText filtered_filenames