首页 > 解决方案 > 如何从元组转到自定义数据类型?

问题描述

所以,我有这门课是关于变态和什么的,我需要编写一个数据类型的代码。

数据类型是

data Expr = Num Int | Bop Expr Op Expr  deriving  (Eq,Show)

并且该函数必须具有此签名

inExpr :: Either Int (Op,(Expr,Expr)) -> Expr

inExpr应该是,我认为,类似于

inExpr = Either Num (Bop something)

但我无法弄清楚的东西。

标签: haskellcustom-data-type

解决方案


为什么不只是

inExpr ie = case ie of
  Left n -> Num n
  Right (o, (e1, e2)) -> Bop e1 o e2

?

或者如果你喜欢either功能

inExpr = either Num (\(o, (e1, e2)) -> Bop e1 o e2)

推荐阅读