1

私はエルムを学び始めたばかりです。このプログラムでは、出力でフォーマットされたマウス座標と矢印キーの状態で画面を更新したいと思います。

私の計画は、Input というレコードを作成し、それを Signals by function 入力で設定することでした。次に、showGameInputs は Input レコードを使用して値を取得し、それらをテキストと組み合わせて Element をメインに返します。

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 と関数型プログラミングは初めてなので、ここで何か基本的なことが抜けているのではないかと思います。

助けてくれてありがとう。

4

1 に答える 1

0

あなたはほとんどそこにいます。エラー メッセージは少し紛らわしい形式 (既知の問題) ですが、input実際にあるべき型は であることが示されていInputます。それがそう言っている理由は、あなたが に応募showGameInputs: Input -> Elementしているからですinput: Signal Input。必要なのは、次のように変更mainすることだけです:

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