Size: a a a

PureScript — русскоговорящее сообщество

2018 February 27

MP

Mike Potanin in PureScript — русскоговорящее сообщество
Пытаюсь скомпилировать purescript-dynamodb, он говорит
   Module Data.Foreign.Undefined was not found.
   Make sure the source file exists, and that it has been provided as an input to the compiler.
Чем Undefined заменяют?
источник

MP

Mike Potanin in PureScript — русскоговорящее сообщество
И еще Data.Foreign.Generic.Classes не находится.
источник

MK

Mikhail Korepanov in PureScript — русскоговорящее сообщество
там старые зависимости видимо, попробуй обновить purescript-foreign-generic
источник

MK

Mikhail Korepanov in PureScript — русскоговорящее сообщество
3.0.0 не работает с 0.11
источник

MP

Mike Potanin in PureScript — русскоговорящее сообщество
Я обновил до ^4.2.0, так как хочу эту библиотеку с другим примером согласовать.
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
у меня собралась сразу
ну я только pulp запускал локальный
источник

MP

Mike Potanin in PureScript — русскоговорящее сообщество
Там конфликт версий, если его с purescript-aws-lambda-express стыковать. По этому я версии зависимостей на более свежие обновил.
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
ух)
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
хм, забавная фича https://github.com/paf31/24-days-of-purescript-2016/blob/master/9.markdown#example-usage
мне было это сложнее всего понять из той серии постов
даже до сих пор не уверен, что до конца понял

http://try.purescript.org/?gist=525b923e3b08832a491afa72dd682af9&backend=core&session=6a3ca184-7437-1568-478e-fd42be02a945
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
все началось с того, что я хотел понять назначение этого пакета https://github.com/purescript/purescript-record/blob/master/src/Data/Record.purs#L25
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
спросил у них:
The purpose of purescript-records is to provide operations for dealing with polymorphic labels.
They are useful for situations in which you want to provide some generic operation involving records but want the user to be able to specify which keys to use.
The way the user gets to specify a key (label), is by specialising a type variable to some specific Symbol (aka type level string).  The way this specialisation is usually done is by passing a type annotated SProxy.  E.g (SProxy :: SProxy "whateverKeyLabelThing")

it makes https://pursuit.purescript.org/packages/purescript-simple-json/1.1.0 possible

natefaubion [11:21 PM]
you can think of it as a programmatic API instead of syntax. foo.bar is like get (SProxy :: SProxy "bar") foo
but since foo.bar is only syntax there’s no way to talk about just the bar property in general
kind of like foo["bar"] in JS
so get symbol bar is like bar[symbol] in JS
in JS it’s just a string, but in a type lang we have to somehow map the string to a field and its type
and in order to do that, you provide a compile-time string via SProxy
and at compile-time it can verify that the string maps to a property

лол, возможно теперь IsSymbol переименуют в KnownSymbol или вообще переделают это)
источник
2018 February 28

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
data MyType a x
 = AA a
 | BB a
 | CC a x
 

instance showMyType :: (Show a, Show x) => Show (MyType a x) where
 show (AA x) = "AX" <> show x
 show (BB y) = "BY" <> show y
 show (CC x y) = "CXY" <> show x <> show y
 

main :: Eff (dom :: DOM) Unit
main =
   render $ fold
     [ p (text (show [ AA "aa", BB "bb" ]))
     ]


такой код говорит, что нужно описать тип массива, чтобы было понятно что он удовлетворяет (Show x). но в этом массиве CC не используется, почему это нужно, и может можно как-то компилятору сказать про это?
источник

к

кана in PureScript — русскоговорящее сообщество
ты про то, чтобы указать тип?
источник

к

кана in PureScript — русскоговорящее сообщество
([AA "aa", ...] :: List [MyType String String])
источник

Вл

В ладу in PureScript — русскоговорящее сообщество
Anton Kotenko
data MyType a x
 = AA a
 | BB a
 | CC a x
 

instance showMyType :: (Show a, Show x) => Show (MyType a x) where
 show (AA x) = "AX" <> show x
 show (BB y) = "BY" <> show y
 show (CC x y) = "CXY" <> show x <> show y
 

main :: Eff (dom :: DOM) Unit
main =
   render $ fold
     [ p (text (show [ AA "aa", BB "bb" ]))
     ]


такой код говорит, что нужно описать тип массива, чтобы было понятно что он удовлетворяет (Show x). но в этом массиве CC не используется, почему это нужно, и может можно как-то компилятору сказать про это?
ну да он не знает какой тип у x и не может сказать точно подходит ли этот инстанс для этого типа
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
и то что x не используется в данном случае его не волнует?
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
понятно, спасибо :)
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
а, сорри
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
а нет, не сорри, не используется :)
источник

Вл

В ладу in PureScript — русскоговорящее сообщество
фраза "не волнует" превращается в сложную задачу по поиску подходящего инстанса
источник