Вопрос: Общий типизированный словарь в Elm


Мне любопытно, как перенести это из F # в Elm:

type World =
    { Rooms: Map<RoomId, Room> 
      Player: Player }

Вещь между RoomId, Room называется родовым типом словаря. См. Здесь контекст: https://github.com/ShalokShalom/Elchemist/blob/master/Game.fs

Я что-то читал о переменных типа, они могут помочь? Если да, то как?

Спасибо


6


источник


Ответы:


Синтаксис Элма будет аналогичным.

редактировать  - @dogbert прав насчет RoomId не сопоставимо в моем первоначальном ответе. Вместо этого вы можете использовать псевдоним типа String.

type alias RoomId = String

type alias Room =
    { id: RoomId
    , details: Details
    , items: List Item
    , exits: Exits 
    }

type alias World =
    { rooms: Dict RoomId Room
    , player: Player
    }

7