@scala_ru

Страница 1370 из 1499
Oleg
27.03.2018
06:37:44
У классов есть отношение частичного порядка - один класс может быть подклассом другого

Это значит, в том числе, что есть уникально определяемое отображение из структуры подкласса в структуру надкласса

Подставляем сюда понятие "тип" вместо "сущность" получаем "класс типов"

Класс всех типов - опрелеляется как тип с пустой структурой

Google
Oleg
27.03.2018
06:39:57
Отношение подкласса должно быть транзитивно, рефлективно

Daniel
27.03.2018
06:39:59
блин пойду ромашки выпью, а то опять занудство врубается (контексты перемешены, от классов в теории множества незаметный переход к классам в понятии хацкелля, но это не хацклль поскольку есть посет)

Oleg
27.03.2018
06:40:44
Есть отношение вхождения, которое тоже должно быть транзитивно относительно отношения субкласса

Nick
27.03.2018
06:42:02
И чего нет в скале?)

Oleg
27.03.2018
06:42:11
Если тип относится к подклассу, он относится и к надклассу

И чего нет в скале?)
Вот этой последней транзитивности

Nick
27.03.2018
06:43:00
Че эт нет ? Прост укажи явно тип надкласса и все ок будет)

Oleg
27.03.2018
06:43:20
Представим, что тип String относится у нас двум классам типов - Monoid и JoinSemilattice

Это автоматически означает, что согласно любому из этих отношений он должен относиться к классу Semigroup

Daniel
27.03.2018
06:44:12
в скалке ж и с рефлексивностью сабтайпинга проблемы

Oleg
27.03.2018
06:44:39
Однако в скалке мы обнаруживаем ambigous implicits

Nick
27.03.2018
06:45:00
Google
Nick
27.03.2018
06:45:05
И все будет хорошо

Oleg
27.03.2018
06:45:06
И оказывается, что мы не знаем, по какому из путей нашего частичного порядка классов нам пройти

Daniel
27.03.2018
06:45:32
только я не оч понимаю одного момента термин слизан с хацкелля (или еще какого-нить языка) и начали в контексте а есть ли в скалке но в хацкелле же нет отношений частичного порядка между классами

Oleg
27.03.2018
06:45:34
Я ж говорю, укажи тип явно)
Где указать? Я указал явно тип String и класс Semigroup

Nick
27.03.2018
06:46:02
А если у тебя два инстанса тайпкласса подходят, то почему бы не валится ?

Nick
27.03.2018
06:46:06
Это правильный вариант

Oleg
27.03.2018
06:46:25
А в хацкеле получаем. У нас всегда один инстанс

Nick
27.03.2018
06:46:57
Я кажется понял про что ты

Daniel
27.03.2018
06:47:08
Нет, термин существовал задолго задолго до хацкел
там где его ввели есть условие существования частичного порядка? если да, то тогда в хацкелле не полное соответствие термину?

Nick
27.03.2018
06:48:15
Откуда вы вообще термин взяли

M
27.03.2018
06:49:59
Давайте говорить как петербуржцы не функторы а мапер не монада а контейнер

Oleg
27.03.2018
06:50:03
Ну смотрите, я утверждаю, что в скалке нет тайпклассов. Вы утверждаете, что есть. Согласно любой конструктивной логике, тяжесть доказательства лежит на вас. Так что коли чаи с ромашкой попиты, предлагаю дать вам определение класса типов, и рассказать, что это есть в скалке

Daniel
27.03.2018
06:51:27
Ну смотрите, я утверждаю, что в скалке нет тайпклассов. Вы утверждаете, что есть. Согласно любой конструктивной логике, тяжесть доказательства лежит на вас. Так что коли чаи с ромашкой попиты, предлагаю дать вам определение класса типов, и рассказать, что это есть в скалке
я не утверждал что он есть в скалке, мне в контексте скалки вообще не нравится термин (это как логистическая регрессия) я хочу понять, что он есть на самом деле - определения и реализации в разных яп

Oleg
27.03.2018
06:52:02
С чего эт на нас? Ровно также как на тебе
Нет. Если ты сказал, что что-то относится к классу, то это твоя ответственность это показать. Если это не показано - этого нет

Nick
27.03.2018
06:52:38
Откуда вообще ты определение взял

Oleg
27.03.2018
06:53:01
С чего эт на нас? Ровно также как на тебе
Именно такой подход конструктивным и называется. Т.е чтобы показать что-то тебе нужно это сконсируировать

Google
Oleg
27.03.2018
06:53:10
Nick
27.03.2018
06:53:24
Прокатит

Откуда ?

Oleg
27.03.2018
06:53:33
Давай своё определение и демонстрацию

Когда дашь, будем сравнивать, откуда мы их взяли, какое более авторитетно и консистентно

Nick
27.03.2018
06:54:12
Давай сперва с источником твоего ознакомимся

Oleg
27.03.2018
06:54:23
Потому что по умолчанию в скалке нет ничего. Говоришь, что есть - покаж

Давай сперва с источником твоего ознакомимся
нет, сперва с твоим определением

Nick
27.03.2018
06:55:19
Да я в википедии прочитал

Лол

Oleg
27.03.2018
06:55:53
Да я в википедии прочитал
Что ты прочитал, говори и демонстрируй поо скалу

Таким образом, я соглашусь, что можно утверждать, что понятие класса типов распространяется на скалку, если мы выкинем из рассмотрения поиск имплиситов

Oleg
27.03.2018
07:00:48
Тогда наше "следствие" - это просто функция, а не implicit derivation

И тогда мы действительно можем получить транзитивность, как простой субститьюшн, ну или композицию, смотря как предоставлять функции из типов

Alex
27.03.2018
07:54:35
ребят кто-нибудь решал такую проблему со скаламоком:

когда мокаешь параметры функции, которые она ожидает нужно обязательно их все указывать

даже implicits

и там нужно обязательно прописывать тип имплисита например _: SomeType

Alexander
27.03.2018
07:56:11
а в чём проблема?

Alex
27.03.2018
07:56:33
проблема в том что имплисит находится в библиотечном приватном обджекте

Google
Alex
27.03.2018
07:56:38
куда у меня нету доступа

такой вот долгий интрадакшн

Alexander
27.03.2018
07:57:06
не может быть такого, что тебе доступен метод, а тип его параметра недоступен

Alex
27.03.2018
07:57:08
есть вариант сделать такой же пекендж как у этого объекта

но это как-то тупо

Admin
ERROR: S client not available

Alex
27.03.2018
07:59:35
protected[scala] object A { sealed class AA() }

что-то типо такого

и к этому типу (в данном случае AA) нету доступа

Enver
27.03.2018
08:53:54
Как вам Скала без запятых? https://contributors.scala-lang.org/t/comma-inference/1521 Тип чтоб их можно было пропускать так же как и точку с запятой: def hasSemicolon() = { println("one"); println("two"); println("three") } def noSemicolon() = { println("one") println("two") println("three") } def hasComma() = { List("one", "two", "three") } def noComma() = { List( "one" "two" "three" ) }

Dmitry
27.03.2018
08:54:18
fix умеет уже вроде

Oleg
27.03.2018
08:56:16
ваще не понимаю профита

Aleksey
27.03.2018
08:56:46
5 апреля в 19:00 в московском офисе Тинькофф-банка пройдет московская встреча Scala-разработчиков. https://www.meetup.com/Scala-Moscow/events/249149083/ Обязательная регистрация через сайт Тинкофф-банка https://meetup.tinkoff.ru/events/scala-meetup (нужна для пропуска в БЦ). По всем вопросам обращаться @fomkin и @optician_owl

Nikolay
27.03.2018
08:57:48
Nikolay
27.03.2018
08:58:35
Чтобы settings в списке писать без запятых

Enver
27.03.2018
08:59:42
ваще не понимаю профита
Ну ты обсуждение о trailing comma читал? https://github.com/scala/docs.scala-lang/pull/533 Удобно добавлять новые элементы в конец или удалять, не редактируя предыдущую строчку с запятой.

Юрий
27.03.2018
09:00:25
проблема в том что имплисит находится в библиотечном приватном обджекте
А как ты тогда вызываешь эту функцию без скаламока?

Google
Oleg
27.03.2018
09:18:04
Это разве актуальный адрес офиса?
конечно, нет. @fomkin мы в БЦ Водный, Головинское Шоссе, 5

Aleksey
27.03.2018
09:18:26
Denis
27.03.2018
09:37:18
но синтакцис foo( x y z )в моей голове редуцируется в foo(x y z) а не в foo(x, y, z)
Поэтому в обсуждении в scala contributors рассматривался отдельно вариант только для именованных параметров, когда запятые выводятся только для foo ( par1 = expr1 par2 = expr2 )

Oleg
27.03.2018
09:41:03
ну короч, сложно мне понять профит

Denis
27.03.2018
09:50:49
ну короч, сложно мне понять профит
Профит -- только когда бесит писать запятые при длинных списках чего-либо. Кстати, там ещё гипотетически можно Haskell-Python-like meaningful identation использовать, например foo( a b c ) выводится в foo(a, b, c), а foo( a b c d ) выводится в foo(a b c, d). Но это не выглядит в стиле Scala.

Oleg
27.03.2018
10:05:38
ну т.е. в то время как есть реальные проблемы с бойлерплейтом в скалке, обсуждать выбрасывание запятых, которые лично мне проблемой не кажутся.

Мне интересно, люди, которым это кажется проблемой

Для них это прям один из первичных источников бойлерплейта?

Vadim
27.03.2018
10:13:37
ну в текущей версии тот другой бойлерплейт никто убирать не будет)

Mikhael
27.03.2018
10:50:09
Всем, привет. я в скала очень новый человек, пытаюсь повторить вот этот пример. https://spark.apache.org/docs/2.3.0/mllib-clustering.html но когда доходит до выполнения map, получаю play.sbt.PlayExceptions$CompilationException: Compilation error[Unable to find encoder for type stored in a Dataset. Primitive types (Int, String, etc) and Product types (case classes) are supported by importing spark.implicits._ Support for serializing other types will be added in future releases.]

Mikhael
27.03.2018
10:52:04
так вот я и не пойму)) я пытаюсь сделать так.

Страница 1370 из 1499