我想创建一个具有此类型的函数:
Signal x -> x
作为例子
my_return : Signal x -> x
my_return x = x -- this is the part I have wrong
我可以获得一个函数示例,它只需要一个Signal x并返回一个x?
答案 0 :(得分:4)
你不能在榆树(以及任何纯函数式语言)中这样做。
Elm所做的是为您提供一种操作输入并通过名为提升的东西创建输出的方法。
lift : (a -> b) -> Signal a -> Signal b
假设我们的my_return类型为a - >那么我们可以写这个
my_return : a -> a
my_return x = x
lift my_return input
通过组合所有这些函数,您将获得一个生成输出的程序(信号元素类型)。
import Mouse
my_return : a -> a
my_return x = x
main : Signal Element
main = lift (asText . my_return) Mouse.position