If statement 涉及信号的if-then语句

If statement 涉及信号的if-then语句,if-statement,frp,elm,If Statement,Frp,Elm,我一直在用Elm写一个简单的if-then语句,其中包含信号 如果条件本身是信号类型怎么办?我想更改Elm网站上的示例: 导入图形。元素公开(…) 导入鼠标 主:信号元件 主要= Signal.map show Mouse.isDown 根据鼠标是向上还是向下,它将显示True或False。如果我想让它说“向上”或“向下”呢?我的布尔函数可以说: <!-- language: haskell --> f : Bool -> String f x = if x then

我一直在用Elm写一个简单的if-then语句,其中包含信号

如果条件本身是
信号
类型怎么办?我想更改Elm网站上的示例:

导入图形。元素公开(…)
导入鼠标
主:信号元件
主要=
Signal.map show Mouse.isDown
根据鼠标是向上还是向下,它将显示TrueFalse。如果我想让它说“向上”或“向下”呢?我的布尔函数可以说:

<!-- language: haskell -->

f : Bool -> String
f x = 
 if x then "&uarr;" else "&darr;"
错误#2:


这与
show::Bool->Element
基本相同。您没有将信号传递给该函数,而是将函数映射到信号上。它也适用于您的
f

导入鼠标
导入图形。元素公开(元素,显示)
f:Bool->String
f x=如果x则为“其他”
向上向下:信号串
updown=Signal.map f Mouse.isDown
主:信号元件
main=Signal.map向上向下显示

或者简言之,使用组合:
main=Signal.map(show它与
show::Bool->Element
基本相同。您不是将信号传递给该函数,而是将函数映射到信号上。它与
f
的工作原理相同:

导入鼠标
导入图形。元素公开(元素,显示)
f:Bool->String
f x=如果x则为“其他”
向上向下:信号串
updown=Signal.map f Mouse.isDown
主:信号元件
main=Signal.map向上向下显示

或者简言之,使用组合:
main=Signal.map(show它与
show::Bool->Element
基本相同。您不是将信号传递给该函数,而是将函数映射到信号上。它与
f
的工作原理相同:

导入鼠标
导入图形。元素公开(元素,显示)
f:Bool->String
f x=如果x则为“其他”
向上向下:信号串
updown=Signal.map f Mouse.isDown
主:信号元件
main=Signal.map向上向下显示

或者简言之,使用组合:
main=Signal.map(show它与
show::Bool->Element
基本相同。您不是将信号传递给该函数,而是将函数映射到信号上。它与
f
的工作原理相同:

导入鼠标
导入图形。元素公开(元素,显示)
f:Bool->String
f x=如果x则为“其他”
向上向下:信号串
updown=Signal.map f Mouse.isDown
主:信号元件
main=Signal.map向上向下显示
或者简而言之,使用组合:
main=Signal.map(显示
<!-- language: haskell -->

main : Signal Element
main =
  Signal.map show ( f Mouse.isDown)
The 2nd argument to function `map` has an unexpected type.

10|   Signal.map show ( f Mouse.isDown)
As I infer the type of values flowing through your program, I see a conflict
between these two types:

    Signal a

    String
The 1st argument to function `f` has an unexpected type.

10|   Signal.map show ( f Mouse.isDown)
As I infer the type of values flowing through your program, I see a conflict
between these two types:

    Bool

    Signal Bool