用其他文本显示信号值

时间:2014-12-17 02:19:12

标签: elm

我刚刚开始学习榆树。在这个程序中,我想用鼠标坐标更新屏幕,并在某些输出中格式化箭头键状态。

我的计划是创建一个名为Input的记录,并使用Signals by function输入设置该记录。然后showGameInputs将使用输入记录来获取值并将它们与一些文本组合以将元素返回到main。

import Mouse
import Keyboard
-- Create a record named Input
type Input = { mouseX:Int, mouseY:Int, arrowUpdown:Int, arrowLeftRight:Int }

-- Combine Signals into Input type
input: Signal Input
input = Input <~ Mouse.x ~ Mouse.y ~ lift .y Keyboard.arrows ~ lift .x Keyboard.arrows

showGameInputs: Input -> Element
showGameInputs { mouseX, mouseY, arrowUpdown, arrowLeftRight } = plainText ("asdf" ++ show mouseX)


main: Signal Element
main = showGameInputs input

这是错误:

[1/1]编译Main(Functions.elm) 在第19行第23到28行输入错误:         输入

预期类型:信号输入      实际类型:输入

对Elm和函数式编程来说很新,所以我怀疑我在这里缺少一些基本的东西。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你几乎就在那里。错误消息有点混乱(已知问题),但它说input实际应该是Input的类型。它之所以如此,是因为您在showGameInputs: Input -> Element上正在应用input: Signal Input。您只需将main更改为:

即可
main = showGameInputs <~ input