
Nick
21.02.2017
06:40:44

Nikita
21.02.2017
06:41:24
Я напишу свою скалу, с 1с совместимостью
Future(посчитайПожалуйста(один плюс два)) аПотом {
case Успех(результат) =>
case Провал(почему) =>
}

Nick
21.02.2017
06:42:16

Oleg
21.02.2017
06:42:43

Google

Nick
21.02.2017
06:43:16
упрлс?
Ну ты ж проходишь по коллекции) че бы нет

Oleg
21.02.2017
06:43:59
Iterable == Foldable

Denis
21.02.2017
06:44:02
Содежащий[т]
И две функции обернуть и переобернуть ))

Grigory
21.02.2017
06:46:05
Разно{родный|типный?}Список кто определит?

Nikita
21.02.2017
06:47:02
HList?

Nick
21.02.2017
06:47:48

Oleg
21.02.2017
06:48:07
я думаю ПлоскийКартограф[щ]
просто в статье про котлин map автор называл картой, хотя и говоря о коллекции, но я всё равно думаю, что это победа

Nick
21.02.2017
06:53:07
Или даже не !=

Andrey
21.02.2017
07:00:30
map - карта, list - лист, tree - три

Dmitry
21.02.2017
07:04:31
For - для

Google

Viktor
21.02.2017
07:04:42
алгол изобретаете? :D

Dmitry
21.02.2017
07:05:48
Аддон для идеи пишем, что по русски можно было на скале писать

Andrey
21.02.2017
07:08:34
ПоВолеБожией(посчитайПожалуйста(один плюс два)) тажде {
коли Благодать() =>
коли Кара() =>
}

Oleg
21.02.2017
07:17:07
Traversable
Traversable гораздо более мощный тип, чем Iterable
Traversable умеет восстанавливать свою структуру, а Iterable только пробегать
Поэтому (Foldable | FP) == (Iterable | OOP)
Traversable ~ Iterable + CanBuild

Nick
21.02.2017
07:18:58

Mikhail
21.02.2017
07:20:28
"At the top of the collection hierarchy is trait Traversable. Its only abstract operation is foreach" - вот и весь траверсабл

Oleg
21.02.2017
07:21:25

Nick
21.02.2017
07:21:36

Mikhail
21.02.2017
07:21:47
так у нас же скаламир

Nick
21.02.2017
07:21:58

Oleg
21.02.2017
07:22:00
https://github.com/typelevel/cats/blob/master/core/src/main/scala/cats/Traverse.scala

Mikhail
21.02.2017
07:22:08
я так могу любое понятие приплести и сказать, что в моей вселенной это нечто больше чем в вашей мухосрани

Oleg
21.02.2017
07:22:18

Nick
21.02.2017
07:22:50
Ты даже ссылку написать правило не можешь)

Aleksey
21.02.2017
07:25:09
Какие-то личные нападки

Oleg
21.02.2017
07:25:38

Google

Oleg
21.02.2017
07:25:43
где?

Aleksey
21.02.2017
07:25:54

Mikhail
21.02.2017
07:26:23
по твоей же ссылке тоже самое написано. только возможность обхода и не более. то, что там эфекты с апликативами навешаны - не меняет сути траверсабл

Nick
21.02.2017
07:26:33

Oleg
21.02.2017
07:27:12

Nick
21.02.2017
07:27:18
С учётом того, что я сижу с Аифуна, то нужно копировать и исправить

Mikhail
21.02.2017
07:28:30

Aleksey
21.02.2017
07:28:37

Nick
21.02.2017
07:28:52
У нас скала и имплиситы

Denis
21.02.2017
07:29:02
stop feeding trolls

Mikhail
21.02.2017
07:29:11

Dim
21.02.2017
07:30:38
Народ, перебъю ваш холивор. Кто Scalatest юзает, как сделать проверку "для каждого элемента в коллекции", только не через foreach а средствами Scalatest, чтобы если ошибка, то был информативный вывод?

Igor
21.02.2017
07:30:59
Народ, скачать "Programming in Scala " в epub? (на рутрекере только в pdf)

Mikhail
21.02.2017
07:31:10
ты и так коллекции можешь shouldEqual или как там - он сам поэлементно сравнит

Dim
21.02.2017
07:31:56
sentenceWithTime.foreach { sentence =>
val listOfExtractedTimes = nerService.extractTime(sentence)
listOfExtractedTimes should not be empty
println(listOfExtractedTimes)
}
сейчас так.

Aleksei
21.02.2017
07:32:31
Там есть forAll матчер

Dim
21.02.2017
07:32:58

Google

Grigory
21.02.2017
07:33:25
theSameElementsAs не подходит?

Dim
21.02.2017
07:36:28

Grigory
21.02.2017
07:38:36
да у меня понг большой был; ничего осбого; по элементно левый траверсабл с правым сравнивает может даже (InOrderAs) с учетом порядка

Oleg
21.02.2017
07:40:42

Nick
21.02.2017
07:42:11

Aleksey
21.02.2017
07:43:33

Nick
21.02.2017
07:44:10
прикольно наверное делать fold на вызове next

Oleg
21.02.2017
07:44:38
вот это ты дал
это тебе https://gist.github.com/anonymous/a8cd77356e9d67473602549772c98747

Admin
ERROR: S client not available

Oleg
21.02.2017
07:48:07

Nick
21.02.2017
07:48:48
на каждый вызов next он делается

Oleg
21.02.2017
07:49:12

Nick
21.02.2017
07:49:36
при инициализации cur делается foldRight
что еще больший фан

Oleg
21.02.2017
07:49:51
да, именно он и делается
больше фолдов там нет

Nick
21.02.2017
07:50:01
а я тебе про фолд на next

Oleg
21.02.2017
07:50:02
ленивый foldRight
да это же Option.fold!!!!

Google

Nick
21.02.2017
07:50:23
а ну да

Oleg
21.02.2017
07:50:29
ну прочитай код, пожалуйста, прежде чем охинею нести

Nick
21.02.2017
07:50:38
как-то не функциональненько ты написал
var cur )

Oleg
21.02.2017
07:51:06
потому что имплементирую Iterator
у него по определению mutable state

Nick
21.02.2017
07:51:42
и что ты этим хотел показать?

Oleg
21.02.2017
07:52:07
это говорит, что Iterable изоморфно Foldable. прочитай код плз

Nick
21.02.2017
07:53:29
убедил
пойду поработаю


Mikhail
21.02.2017
08:03:04
это тебе https://gist.github.com/anonymous/a8cd77356e9d67473602549772c98747
и? с чего бы "Traversable better than Iterable" ? Зачем их вобще сравнивать с позиции "лучше-хуже" ? траверсабл и итерабл - разный апи для одной сути - обход поэлементно. Ничего кроме этого. Исходя из общего описания - ни там ни сям никаких гарантов даже нет, что эти элементы будут ограничены множеством которое ты хочешь обойти или что ты обойдешь гарантированно каждый элемент множества или не обойдешь какие-то элементы более одного раза. Ничего не гарантируется, кроме гаранта наличия апи для обхода. Более того - Итерабл (а точнее итератор, потому что итерабл лишь гарант получения итератора) - несколько более мощная концепция, поскольку траверсабл всегда может быть выражен через итерабл, а наоборот не всегда(а ведь итератор еще может быть и двунаправленный - здесь траверсабл сразу на лопатки ложится). То, про что ты толкуешь - это всего лишь частные реализации со своими гарантиями, но никак не часть общих определений.


Oleg
21.02.2017
08:04:29
и? с чего бы "Traversable better than Iterable" ? Зачем их вобще сравнивать с позиции "лучше-хуже" ? траверсабл и итерабл - разный апи для одной сути - обход поэлементно. Ничего кроме этого. Исходя из общего описания - ни там ни сям никаких гарантов даже нет, что эти элементы будут ограничены множеством которое ты хочешь обойти или что ты обойдешь гарантированно каждый элемент множества или не обойдешь какие-то элементы более одного раза. Ничего не гарантируется, кроме гаранта наличия апи для обхода. Более того - Итерабл (а точнее итератор, потому что итерабл лишь гарант получения итератора) - несколько более мощная концепция, поскольку траверсабл всегда может быть выражен через итерабл, а наоборот не всегда(а ведь итератор еще может быть и двунаправленный - здесь траверсабл сразу на лопатки ложится). То, про что ты толкуешь - это всего лишь частные реализации со своими гарантиями, но никак не часть общих определений.
Traverse просто более мощное определение, чем Foldable, так же, как Монада более мощное, чем Функтор
а Foldable, как мы уже выяснили, равномощно Iterable
и ещё ращ


Mikhail
21.02.2017
08:06:09
не равномощно, потому что фолдабл через итерабл выразимо, а итерабл через фолдабл нет.

Oleg
21.02.2017
08:06:26
мы говорим не о scala.collection.Traversable а о cats.Traverse или scalaz.Traverse

Mikhail
21.02.2017
08:08:17
только в твоей вселенной в рамках scalaz, cats

Oleg
21.02.2017
08:08:30
расскажи о других вселенных

Mikhail
21.02.2017
08:09:46
так, что эти библиотеки - есть частные реализации со своими гарантиями.