Проверить значение в dict

Пытаемся проверить ценность фруктов

fruit =
  Dict.fromList
      [ ( 1, { fruitIsGood = False } )
      , ( 2, { fruitIsGood = False } )
      , ( 3, { fruitIsGood = True } )
      ]

whichFruitIsGood : Dict.Dict number { fruitIsGood : Bool } -> String
whichFruitIsGood fruit =
    case get 0 fruit of
        Nothing ->
            Debug.crash "nothing found"

        Just fruit ->
            if fruit.fruitIsGood == True then
                "Apple"
            else
                "I hate Fruit"

Я не знаю, как добраться до опоры FruitIsGood или как там ее называют вяза ...

1
0
47
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Во-первых, Debug.crash "nothing found" не предоставит вам никаких полезных функций, а как насчет возврата строки nothing found.

Тогда вам просто нужно исправить ошибки, на которые указывает компилятор. В основном они касаются переменных, которые определяются несколько раз. Давайте переименуем вашу первую функцию в fruits:

fruits =
  Dict.fromList
      [ ( 1, { fruitIsGood = False } )
      , ( 2, { fruitIsGood = False } )
      , ( 3, { fruitIsGood = True } )
      ]

И переменная во второй функции:

whichFruitIsGood : Dict.Dict number { fruitIsGood : Bool } -> String
whichFruitIsGood fruit =
    case get 3 fruit of
        Nothing ->
            "nothing found"

        Just foundFruit ->
            if foundFruit.fruitIsGood == True then
                "Apple"
            else
                "I hate Fruit"

Затем ваш код скомпилируется и в результате вернет nothing found.

Вот небольшой, немного измененный пример приложения ellie, который показывает код в действии.

Другие вопросы по теме