Size: a a a

Elm Lang сообщество разработчиков

2018 May 01

С

Сергей Ufocoder in Elm Lang сообщество разработчиков
type alias Position = { x : Float, y : Float }
type alias Velocity = { vx : Float, vy : Float }

type alias CircleData = { radius : Float }
type alias RectangleData = { height : Float, width : Float }
type Shape = Circle CircleData | Rectangle RectangleData

type alias Body = { position : Position , shape : Shape , velocity : Velocity }

type alias Rounded a = { a | shape : CircleData }
type alias Boxed a = { a | shape : RectangleData }
источник

С

Сергей Ufocoder in Elm Lang сообщество разработчиков
у меня вот тако получается
источник

С

Сергей Ufocoder in Elm Lang сообщество разработчиков
и на выходе я могу делать типы новые типа
источник

С

Сергей Ufocoder in Elm Lang сообщество разработчиков
type alias Block = Boxed Body
type alias Fireball = Rounded Body
источник

С

Сергей Ufocoder in Elm Lang сообщество разработчиков
тоесть загвоздка были именно как правильно комбинацию прописать аля Boxed Body, но мы разобрались)
источник

к

кана in Elm Lang сообщество разработчиков
нет, не можешь
источник

к

кана in Elm Lang сообщество разработчиков
в Body shape : Shape
источник

к

кана in Elm Lang сообщество разработчиков
а ты требуешь shape : CircleData
источник

С

Сергей Ufocoder in Elm Lang сообщество разработчиков
ага, написал переписал до рабочего вида, и снова ошибка :(
источник

С

Сергей Ufocoder in Elm Lang сообщество разработчиков
Function `updatePositionByTime` is expecting the 2nd argument to be:
   Body
But it is:
   Rounded Body
источник

С

Сергей Ufocoder in Elm Lang сообщество разработчиков
Сигнатура
updatePositionByTime : Time -> Body -> Body
источник

С

Сергей Ufocoder in Elm Lang сообщество разработчиков
видимо придется отказаться от затеи с предопределенным значением для union type
источник

NK

ID:536005385 in Elm Lang сообщество разработчиков
Сергей а какой смысл использовать extensible records без доп.  полей?
источник

NK

ID:536005385 in Elm Lang сообщество разработчиков
Если ты хочешь просто отозвать по другому то type alias в помощь
источник

С

Сергей Ufocoder in Elm Lang сообщество разработчиков
я хочу обозначить alias так, чтобы какое-то поле имело преодпределеленный тип из union type - для создания все возможных комбинаций
источник

С

Сергей Ufocoder in Elm Lang сообщество разработчиков
или ты предлагаешь использовать Body без Shape а, нужны вид Shape добавлять через extensible records?
источник

NK

ID:536005385 in Elm Lang сообщество разработчиков
Ну так я уже два раза про это говорил что типы в union можно собирать типа type Figure = Figure Rounded Colored и т.п.
источник

NK

ID:536005385 in Elm Lang сообщество разработчиков
Но при чем здесь ext records и type alias?
источник

NK

ID:536005385 in Elm Lang сообщество разработчиков
Это так называемые opaque types
источник

С

Сергей Ufocoder in Elm Lang сообщество разработчиков
нужно выспаться) утром уже поразбираюсь)
источник