Elm:
Робота з YAML

Як це зробити:

Щоб працювати з YAML в Elm, вам зазвичай потрібно перетворити YAML на JSON поза Elm, а потім використовувати вбудовані функції декодера JSON Elm для роботи з даними. Хоча цей підхід вимагає додаткового кроку конвертації, він використовує сильну систему типів Elm для забезпечення цілісності даних. Популярні інструменти для конвертації YAML в JSON включають онлайн-конвертери або сервіси на сервері. Після отримання JSON ви можете використовувати модуль Json.Decode Elm для роботи з даними.

Спочатку, припустимо, у вас є наступні дані YAML:

person:
  name: Jane Doe
  age: 30

Перетворіть їх на формат JSON:

{
  "person": {
    "name": "Jane Doe",
    "age": 30
  }
}

Потім визначте вашу модель Elm та декодер:

module Main exposing (..)

import Html exposing (text)
import Json.Decode as Decode

type alias Person =
    { name : String
    , age : Int
    }

personDecoder : Decode.Decoder Person
personDecoder =
    Decode.map2 Person
        (Decode.field "name" Decode.string)
        (Decode.field "age" Decode.int)

Щоб використати цей декодер для конвертації JSON у тип Elm:

import Json.Decode as Decode

jsonString = 
    """
    {
      "person": {
        "name": "Jane Doe",
        "age": 30
      }
    }
    """

decodeResult = Decode.decodeString (Decode.field "person" personDecoder) jsonString

main =
    case decodeResult of
        Ok person ->
            Html.text ("Привіт, " ++ person.name ++ "!")
            
        Err _ ->
            Html.text "Під час декодування сталася помилка."

Вивід (відображено в додатку Elm):

Привіт, Jane Doe!

Цей підхід забезпечує можливість працювати з даними YAML в Elm, використовуючи JSON як проміжний формат, і використовувати міцну систему типів та можливості декодування JSON Elm для безпечної та ефективної маніпуляції з зовнішніми даними.