let When true d = d
let foo =() |> When false
所以我有副作用,我不喜欢,因为它是错误:MatchFailureException
我知道我可以有很好的副作用在这里:let foo = if false then()
但警告Incomplete pattern matches on this expression.
告诉我,我可以添加我需要的东西。我只是不知道如何或者如果可能?否则,为什么我甚至可以使用值作为参数?
btw:我知道我可以写When b d = if b then d else()
但问题更一般。
添加在Haskell解释
let wh :: Bool -> IO() -> IO()
wh True f = f
wh False f = return()
但我有它作为参数,我有运算符'什么时候可以显示我怎样才能使用这种语法与我的'当'? – Cynede 2014-09-23 11:59:58
或...它只是没有被设计为用作参数?至少它工作,当我做'让foo =()|>当真# – Cynede 2014-09-23 12:05:47
我真的不明白你在这里试图做什么。你是否想要定义一个叫做when的函数?或者只是以一种奇怪的方式使用它? – 2014-09-23 12:09:59