我刚刚开始学习榆树。在这个程序中,我想用鼠标坐标更新屏幕,并在某些输出中格式化箭头键状态。
我的计划是创建一个名为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和函数式编程来说很新,所以我怀疑我在这里缺少一些基本的东西。
感谢您的帮助。
答案 0 :(得分:0)
你几乎就在那里。错误消息有点混乱(已知问题),但它说input
实际应该是Input
的类型。它之所以如此,是因为您在showGameInputs: Input -> Element
上正在应用input: Signal Input
。您只需将main
更改为:
main = showGameInputs <~ input