@scala_ru

Страница 956 из 1499
Ilya
25.09.2017
16:10:21
Точнее, на bash скрипт.

Alexey
25.09.2017
17:25:20
Я думаю такие вопросы лучше в projvm

Google
Pavel
25.09.2017
18:45:02
play еще не перевели на сбт 1.0?

Grigory
25.09.2017
19:04:28
play еще не перевели на сбт 1.0?
https://github.com/playframework/playframework/issues/7261

folex
25.09.2017
19:45:35
Жалко они в превью статус не пишут

Igor
25.09.2017
19:52:17
подскажите, что тут с типами не так и как исправить def combinations(occurrences: List[(Char, Int)]): List[List[(Char, Int)]] = { def createCombination(occ: List[(Char, Int)]): List[List[(Char, Int)]] = { if (occ == Nil || occ.isEmpty) List(List()) else { val readyCombs = createCombination(occ.tail) for { i <- 1 to occ.head._2 readyComb <- readyCombs } yield ((occ.head._1, i) :: readyComb) ::: readyCombs } } createCombination(occurrences) }



Oleksandr
25.09.2017
20:06:37
ну и yield возвращает нечто спископодобное

Igor
25.09.2017
20:07:09
ага, понятно. теперь выдает вот такое



откуда вообще этот Product вылез?

Михаил
25.09.2017
20:08:03
откуда вообще этот Product вылез?
Вероятно, ты забыл скобочки вокруг for. Там readyCombs конкатенируется не к результату генератора, а к выражению в yield

Google
Oleksandr
25.09.2017
20:10:25
метод не tailrec, если важно

Igor
25.09.2017
20:28:47
метод не tailrec, если важно
а такое будет эквивалентно? def combinations(occurrences: List[(Char, Int)]): List[List[(Char, Int)]] = { def createCombination(occ: List[(Char, Int)], accum: List[List[(Char, Int)]]): List[List[(Char, Int)]] = { if (occ == Nil || occ.isEmpty) accum else { createCombination(occ.tail, (for { i <- (1 to occ.head._2).toList readyComb <- accum } yield (occ.head._1, i) :: readyComb) ::: accum) } } createCombination(occurrences, List(List())) }

Igor
25.09.2017
20:36:27
не у ноута, поставь @tailrec аннотацию, компилятор скажет
С аннотацией то все ок, вопрос в эквивалентности логики)

Oleksandr
25.09.2017
20:39:44
С аннотацией то все ок, вопрос в эквивалентности логики)
с телефона тяжело парсить код) для таких функций удобно юзать quickcheck, оно нагенерит тебе вариантов и проверит ответы

scalacheck, точнее квикчек в хаскеле

Igor
25.09.2017
20:41:39
Ну базовые тесты вроде прошло :)

Oleksandr
25.09.2017
20:42:15
скалачековские или свои?

Igor
25.09.2017
20:46:57
скалачековские или свои?
свои. вернее, которые курсера дала)

со скалачеком завтра поразбираюсь уже

Oleksandr
25.09.2017
20:48:47
свои. вернее, которые курсера дала)
а, ну тогда, скорее всего, эквиваленты -- там большой набор тестов (если засабмитить)

Daniel
26.09.2017
06:32:05
https://twitter.com/rolandkuhn/status/912253045978931200

Stanislav
26.09.2017
07:04:20
Приветствую всех) в проекте возникла необходимость заюзать ibm websphere mq из scala-приложения. Оказалось, что дрова ibm для mq столь проприетарны, что их нет в публичных репозиториях) используем jms и alpakka. Может кто знает, как малой кровью настроить ibm mq и без боли jms-ть в нее?

Oleg
26.09.2017
07:06:47
в ентерпрайзе малой крови не бывает. Ты должен доказать, что ты достоин столь дорогих продуктов

Stanislav
26.09.2017
07:08:13
в ентерпрайзе малой крови не бывает. Ты должен доказать, что ты достоин столь дорогих продуктов
У нас даже в договорах с заказчиком есть пункт, что мы должны поставить ему определенный объем боли вместе с софтом. Но то - тз заказчика, а нам с этим жить, поэтому вопрос актуален: как?)

Daniel
26.09.2017
07:13:35
вроде ж были но могу путать, я 2 года назад с этим связывался и примерно тогда же выпилил, потому что у дров текли потоки (при переподключении не всегда убивались старые)

Daniel
26.09.2017
07:16:49
не, мне повезло, что на другом конце очереди не научились с ней работать быстро и схема интеграции через mq была закопана

Andry
26.09.2017
09:25:08
Коллеги, а тните носом почему вот енто val i: Any = 1 i.asInstanceOf[Long] Выдает ошибку ClassCastException

Google
Aleksey
26.09.2017
09:26:04
Коллеги, а тните носом почему вот енто val i: Any = 1 i.asInstanceOf[Long] Выдает ошибку ClassCastException
Потому что в i лежит BoxedInt, а ты пытаешься привести его к BoxedLong.

Andry
26.09.2017
09:26:58
Лех подробней можно?

Daniel
26.09.2017
09:28:18
scala> 1.isInstanceOf[Long] res2: Boolean = false

Andry
26.09.2017
09:29:11
Тогда почему вот это работает? val i = 1 i.asInstanceOf[Long]

Sergey
26.09.2017
09:29:37
потому что это уже Int а не Any

Oleg
26.09.2017
09:30:18
в скале два asInstanceOf, один работает как джавовые касты объектов, второй как касты примитивов

Daniel
26.09.2017
09:30:19
из инта в лонг идет имплиситная конвертация но из any в лонг нет

Oleg
26.09.2017
09:30:30
не, там не юзаются имплиситы

Daniel
26.09.2017
09:31:02
это не имплисит как фича языка, а не явное приведение согласно спеке

Aleksey
26.09.2017
09:31:10
Тогда почему вот это работает? val i = 1 i.asInstanceOf[Long]
Any это как Object. А Object это ссылка. То есть в i должна лежать ссылка на объект который соотвествет значению 1. Это назывется boxing. То есть у тебя будет BoxedInt. Когда ты делаешь приведение ты приводишь к BoxedLong. BoxedInt и BoxedLong это разные типы.

Oleg
26.09.2017
09:31:47
это не имплисит как фича языка, а не явное приведение согласно спеке
это приведение когда ты пишешь x: Long = 1, а здесь он преобразует явно в код каста, если оба типа примитива

Andry
26.09.2017
09:31:47
Гм ну т.е. если ко мне прилетает Any, то хрен его как привести к другому формату кроме как патерматчинга?

Aleksey
26.09.2017
09:32:04
case class MyBoxedInt(x: Int) case class MyBoxedLong(x: Int) val i = MyBoxedInt(1) i.asInstanceOf[MyBoxedLong]

Oleg
26.09.2017
09:32:08
вообще-то Object для AnyRef
в кастах Any воспринимается как AnyRef

Oleksandr
26.09.2017
09:32:44
Oleg
26.09.2017
09:32:58
кинт спеку, я найду

https://issues.scala-lang.org/browse/SI-4437

вот тебе спека

Google
Oleg
26.09.2017
09:34:24
The test x.asInstanceOf[T] is treated specially if T is a numeric value type (�12.2). In this case the cast will be translated to an application of a conversion method x.toT (�12.2.1).

Andry
26.09.2017
09:35:28
А чем тебя паттерн-матчинг не устраивает?
Нудык думал легко и просто сделать приведение к типу из Any, а тут это ((( Пичалька...

Oleksandr
26.09.2017
09:35:44
хотя, в принципе, можно вывести, из наличия Boxed*

Oleg
26.09.2017
09:36:02
да никто не знал, это ж на ходу всё придумывают

Aleksey
26.09.2017
09:36:43
Нудык думал легко и просто сделать приведение к типу из Any, а тут это ((( Пичалька...
От таких мыслей получаются языки, где [] == "" == true (но это не точно).

Oleksandr
26.09.2017
09:39:43
тут либо матчить, либо (лучше) присылать нормальный тип

Andry
26.09.2017
10:12:45
а если там _вдруг_ вообще не число, а, скажем, свой класс?
Ну тут как раз я не против генерации ошибки

Вот кстати в исходниках Верблюда есть такой метод public <T> T getIn(Class<T> type) { Message in = getIn(); // eager same instance type test to avoid the overhead of invoking the type converter // if already same type if (type.isInstance(in)) { return type.cast(in); } // fallback to use type converter return context.getTypeConverter().convertTo(type, this, in); }

ну понятное дело что тут они еще конверторы регистрируют

Oleksandr
26.09.2017
10:16:17
а проект на акке ? (у неё есть, говорят, хорошая интеграция с камелом)

Andry
26.09.2017
10:16:56
Не на как раз на Верблюде...

Oleksandr
26.09.2017
10:18:18
ну тогда вариантов кроме патмата по базовым числовым типам и ошибки при _ я не вижу

Andry
26.09.2017
10:20:17
Угу... эх... а как было бы клево...

Alexey
26.09.2017
10:21:19
Ну как бы n: Number => n.longValue()

если оно всё равно забоксено

Denis
26.09.2017
13:48:02
Яндекс? )

Pavel
26.09.2017
13:48:35
не похоже

Denis
26.09.2017
13:48:53
Похоже на красную розу просто, значит обознался

Google
Pavel
26.09.2017
13:49:13
ты из Яндекса?

Denis
26.09.2017
13:49:29
нет )

Но рядом офис

Dmitry
26.09.2017
13:52:16
Дф?

KrivdaTheTriewe
26.09.2017
13:53:28
имхо это трёхгорка какая

Marmalade
26.09.2017
14:00:45
Лол, чатиком промахнулся.

Vladimir
26.09.2017
14:04:51
э, а ответ?

Marmalade
26.09.2017
14:05:21
Ответ?

Vladimir
26.09.2017
14:09:52
что за место на размытом фоне?

Marmalade
26.09.2017
14:14:53


Телеграмм не платит геометки?

>постит fix

Ну это Гамбург.

Загниваем тут с пауками.

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