【发布时间】:2013-01-11 05:40:57
【问题描述】:
如何可以减少/简化此代码(或一般来说,具有多个输入的代码)?
do
sex <- askSex
name <- askName
sayHello sex name
在这种情况下已经很短了,但是当它到达多个输入时,它看起来很乱。有没有办法做类似的事情:
sayHello askSex askName
?
【问题讨论】:
-
这段代码在我看来非常简单
-
比这更短的东西很可能很奇怪。如果您要求大量相同类型的输入,您可能会映射这些操作,但在这种情况下不会。
-
查看
Control.Monad中的函数,特别是liftM2。 -
正如 sabauma 所说,使用
liftM2。它是您原始代码的抽象,正是您想要的。 -
n.b.如果您在 do-block 的开头包含
do会更清楚。
标签: haskell