Я застрял в написании простого оператора if-then в Elm с использованием сигналов.
Что, если условное выражение само имеет тип Signal
? Я хотел бы изменить пример Mouse Down на веб-сайте Elm:
import Graphics.Element exposing (..)
import Mouse
main : Signal Element
main =
Signal.map show Mouse.isDown
Будет указано True или False в зависимости от того, находится ли мышь вверху или внизу. Что, если я хочу, чтобы он говорил «Вверх» или «Вниз»? Моя логическая функция может сказать:
<!-- language: haskell -->
f : Bool -> String
f x =
if x then "↑" else "↓"
но когда я меняю основную функцию, я получаю несоответствие типов.
<!-- language: haskell -->
main : Signal Element
main =
Signal.map show ( f Mouse.isDown)
Ошибка №1:
The 2nd argument to function `map` has an unexpected type.
10| Signal.map show ( f Mouse.isDown)
As I infer the type of values flowing through your program, I see a conflict
between these two types:
Signal a
String
Ошибка №2:
The 1st argument to function `f` has an unexpected type.
10| Signal.map show ( f Mouse.isDown)
As I infer the type of values flowing through your program, I see a conflict
between these two types:
Bool
Signal Bool