jus*_*man 5 syntax haskell types
我想要得到这样的东西。这是可能的?
something :: String
something =
let
type FirstName = String
type LastName = String
fullName :: FirstName -> LastName -> String
fullName = a ++ " " ++ b
in
fullName "Haskell" "Curry"
Run Code Online (Sandbox Code Playgroud)
我一直在尝试寻找能够执行此操作的语言扩展,但无济于事。
直接答案是否定的,类型定义只能在模块级别上进行。
类似的事情是可能的:
let
fullName ::
(firstName ~ String, lastName ~ String) =>
firstName -> lastName -> String
fullName a b = a ++ " " ++ b
in
_
Run Code Online (Sandbox Code Playgroud)