1

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

我的计划是创建一个名为 Input 的记录,并通过函数输入将其设置为 Signals。然后 showGameInputs 将使用 Input 记录来获取值并将它们与一些文本组合以将元素返回给 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 of 1] 编译 Main ( Functions.elm ) 第 19 行第 23 到 28 列的类型错误:输入

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

Elm 和函数式编程非常新,所以我怀疑我在这里遗漏了一些基本的东西。

谢谢你的帮助。

4

1 回答 1

0

您快到了。错误消息的格式有点混乱(一个已知问题),但它说input实际应该是的类型是Input. 之所以这么说是因为你正在申请showGameInputs: Input -> Elementinput: Signal Input您只需更改main为:

main = showGameInputs <~ input
于 2014-12-17T09:19:08.823 回答