得到一些代码来完成。但我不知道如何处理这个禁止的表达。那是代码:
data Zutat = Tomate | Fleisch | Salat
data Bun = Weizen | Roggen
data Sosse = Ketchup Sosse | Mayo Sosse | Keine
data Burger = Burger Bun [Zutat] Sosse
我需要完成代码:
let zt = in -- Zutat
let so = in -- Sosse
let dw =
dw
必须与dw = Weizen [Tomate,Fleisch,Fleisch] (Mayo (Ketchup Keine))
得到了这个:
zt = [Tomate,Fleisch,Fleisch]
so = Mayo (Ketchup Keine)
dw = Burger Weizen zt so
但我如何将其构建到let in表达式中?
答案 0 :(得分:5)
您只需将这些表达式插入let
表达式:
let zt = [Tomate, Fleisch, Fleisch] in
let so = Mayo (Ketchup Keine) in
let dw = Burger Weizen zt so in
...
或使用单个let
表达式:
let
zt = [Tomate, Fleisch, Fleisch]
so = Mayo (Ketchup Keine)
dw = Burger Weizen zt so
in ...
完整示例:
data Zutat = Tomate | Fleisch | Salat
deriving (Show)
data Bun = Weizen | Roggen
deriving (Show)
data Sosse = Ketchup Sosse | Mayo Sosse | Keine
deriving (Show)
data Burger = Burger Bun [Zutat] Sosse
deriving (Show)
main :: IO ()
main = let
zt = [Tomate, Fleisch, Fleisch]
so = Mayo (Ketchup Keine)
dw = Burger Weizen zt so
in print dw
输出:
Burger Weizen [Tomate,Fleisch,Fleisch] (Mayo (Ketchup Keine))
听起来您需要查阅有关基本Haskell语法的参考资料。