@scala_ru

Страница 153 из 1499
Mikhail
10.10.2016
15:08:41
вобще-то jvm

мы говорим про рантайм

Alex
10.10.2016
15:08:52
а он жеж компилирует на ходу!

Mikhail
10.10.2016
15:09:02
тогда jit

Google
Alex
10.10.2016
15:10:11
джит это характеристика компилятора ?

Alexey
10.10.2016
15:29:57
case "get_usir_photo" => get_user_photo()
Заведи Enum, sealed trait

Не "харкодь" строки

kir
10.10.2016
15:33:09
Не Enum, а case-class заведи.

Eugene
10.10.2016
15:45:43
case object

folex
10.10.2016
15:45:44
пятиминутка занудства прям

Alex
10.10.2016
15:47:52
moar like 2.5 часа :)

folex
10.10.2016
15:48:31
Zanooda User Group

Aleksey
10.10.2016
15:48:54
Zanooda - офигенное знавание для компании.

folex
10.10.2016
15:49:39
Работать с ними будут только самые отчаянные либо тоже зануды

Mikhail
10.10.2016
15:50:24
Заведи Enum, sealed trait
не читал, но осуждаю)

Nikolay
10.10.2016
15:50:27
на собеседованиях будет говорить в основном тот кто собеседует, а не тот кого собеседуют

Mikhail
10.10.2016
15:50:39
где ж я писал, что я харкожу строки то)

Google
Alex
10.10.2016
15:51:08
гугл сообщает что zanood это индийская фамилия :)

Aleksey
10.10.2016
15:51:24
Тогда точно надо брать.

Mikhail
10.10.2016
15:51:28
мне в данном случае и енумы то не нужны, потому как это дополнительный и избыточный бойлерплейт)

Vladislav
10.10.2016
15:52:27
Zanooda - офигенное знавание для компании.
А у Егора компания разве не так называется?)

Шутка минутка

Nikolay
10.10.2016
15:56:07
у меня была идея назвать компанию "80% done"

Aleksey
10.10.2016
15:56:34
Подожите, я записываю!

Nikolay
10.10.2016
15:56:42
и она будет заниматься аутсорсом

знаете же, что всегда самое сложное - это доделать проект. так вот, эта компания всегда будет делать проект на 80%

и когда будут заказывать доработки, то их тоже на 80% делать

это как в парадоксе про Ахилеса и черепаху

Mikhail
10.10.2016
15:58:31
а будет ли она выполнять 100% от 80% проекта? или в рекурсию свалится?

Nikolay
10.10.2016
15:59:00
Alex
10.10.2016
15:59:03
будет ли она заполнять джиру на 100%?

Nikolay
10.10.2016
15:59:12
она засчет рекурсии будет жить

Alex
10.10.2016
15:59:53
это как в анекдоте "а мне похуй что там написано"

Nikolay
10.10.2016
15:59:54
будет ли она заполнять джиру на 100%?
думаю что это уже детали внутренней организации. философия "80% done" больше относится к работе с контрагентами

Mikhail
10.10.2016
16:00:06
главное, чтобы клиенты не чухнули и тоже в рекурсию по оплате не ушли, каждый раз будут 80% от предыдущей оплаты платить)

Nikolay
10.10.2016
16:00:50
хм, этот вопрос предстоит решить, согласен

Google
Aleksey
10.10.2016
16:01:45
А платить они будут так: все бумаги подготовили, сумму в интернет-банке заполнили... и закрыли вкладку.

Daniel
10.10.2016
16:02:49
надо еще следить, чтобы (it(n+1) - it(n)) не стремилось к нулю тогда экономически это будет ривлекательно (ряд чтобы не сходился)

Alex
10.10.2016
16:04:18
лучше чтобы к +∞

Nikolay
10.10.2016
16:06:16
можно так микросервисы пилить по принципу 80% done. и оплату брать за каждый. но не уверен что прокатит

Mikhail
10.10.2016
16:07:42
шантажировать тем, что до полной оплаты метод будет возвращать не более 80% от реальных данных

или будет отвечать только на 80% запросов

Nikolay
10.10.2016
16:09:02
high availability = 80% availability

Denis
10.10.2016
16:27:01
80% consistency

aka eventual consistency :)

Alex
10.10.2016
16:37:50
partial consistency

Denis
11.10.2016
05:05:33
http://degoes.net/articles/insufficiently-polymorphic

Aleksey
11.10.2016
05:59:40
Aleksey
11.10.2016
06:11:12
Вопрос (который я когда-то уже задавал): почему нет либы с мемоизацией?

Vadim
11.10.2016
06:12:06
а тебе надо чтобы там кроме мемоизации больше ничего не было?)

Aleksey
11.10.2016
06:14:11
Конечно. Я же не люблю фреймворки.

Vadim
11.10.2016
06:15:01
ну тогда придется ее выкорчевать откуда либо)

Aleksey
11.10.2016
06:15:35
А где есть?

Скалази?

Vadim
11.10.2016
06:16:08
twitter utils, scalaz, в cats Eval

Aleksey
11.10.2016
06:30:04
Интересно, что ни одна из имплементаций не использует мягкие ссылки.

Google
Aleksey
11.10.2016
06:37:53
Хотя казалось бы.

Vadim
11.10.2016
06:43:33
ты кеш пытаешься сделать чтоли?

Aleksey
11.10.2016
06:53:49
ты кеш пытаешься сделать чтоли?
Ну мемоизация это кеш для функций.

У меня есть чистые функции, который по многу раз вызываются с одинаковыми аргументами. Спустя какое-то время они перестают вызываться с этими аргументаци. Хочется что бы результат вычисления убивался вместе с аргументами.

Aleksey
11.10.2016
07:24:31
Nick
11.10.2016
07:25:25
Ну weak эт нихера не cache)

Aleksey
11.10.2016
07:25:35
def memoize[I, O](f: I => O): I => O = { val cache = java.util.Collections.synchronizedMap(new java.util.WeakHashMap[I, O]()) (args: I) => { import java.util.function.Function cache.computeIfAbsent(args, new Function[I, O] { def apply(x: I): O = f(x) }) } } Что-то типа такого, только что бы с таплами нормально работало.

Admin
ERROR: S client not available

Aleksey
11.10.2016
07:26:10
Ну weak эт нихера не cache)
Может быть здесь путаница в терминологии?

То что я написал с таплами не работает, потому что они вычищаются примерно сразу и значение соответственно дропается.

Evgeniy
11.10.2016
07:27:05
ктонибудь, кто читал статью De Goes-а про [Onion](http://degoes.net/articles/modern-fp-part-2) разобрался как там подразумевается имплементировать интерпретаторы которые должны выражатся в терминах другого интерпретатора ? вот это все: val bankingLogging : BankingF ~< Halt LoggingF val bankingProtocol : BankingF ~< ProtocolF val protocolSocket : ProtocolF ~< SocketF val loggingFile : LoggingF ~< FileF val execFile : FileF ~> IO val execSocket : SocketF ~> IO

Nick
11.10.2016
07:31:14
Ещё weakhashmap не конкарент

Aleksey
11.10.2016
07:32:10
Ещё weakhashmap не конкарент
Ну я его там обернул. Это все детали. Гораздо сложнее сделать что бы все работало не для одного аргумента. Несколько аргументов это тапл, который будет вычищен.

Mikhail
11.10.2016
07:32:11
тупл есть такой же обьект как и любой другой, все остальные плюшки туплов - исключительно синтаксический сахар)

в рамках скалы конечно же)

Aleksey
11.10.2016
07:33:59
тупл есть такой же обьект как и любой другой, все остальные плюшки туплов - исключительно синтаксический сахар)
Да я понимаю. Дело в том что мне нужно работать именно с содежанием тапла, а не с самим таплом. Сам тапл это временный объект, который сдохнет сразу же.

По этому интересует готоваря реализация, что бы не изобретать.

Mikhail
11.10.2016
07:34:32
Об этом и речь - ты не сможешь работать с содержимом тапла. Однако ты можешь сделать две мапы и ключами сделать содержимое тапла

Google
Mikhail
11.10.2016
07:34:51
если конечно тебе достаточно тупла из 2ух, для 3 - придется делать три мапа

Mikhail
11.10.2016
07:34:56
да

иначе никак, если хочешь работать с содержимым тупла)

ну в принципе вру, ты можешь один мап использовать

хотя там может возникнуть коллизия

смотря какие у тебя задачи

Aleksey
11.10.2016
07:35:54
Mikhail
11.10.2016
07:35:54
если поля тупла разные по типу - то хватит и одного мапа

Aleksey
11.10.2016
07:36:34
если поля тупла разные по типу - то хватит и одного мапа
Сделать мап от инта и ксорить хэшкоды элементов продакта?

Vadim
11.10.2016
07:37:00
я вообще не понял идеи - для чего нужно время жизни результата мемоизации привязывать к аргументам?)

Grigory
11.10.2016
07:37:34
А реализация скалаза / кошек не походит?

Nick
11.10.2016
07:38:09
Aleksey в общем зачем тебе эт? У тебя функции по часу работают?

Grigory
11.10.2016
07:38:09
А может вариант залезть внутрь и по мотивам сделать?

Если можно

Mikhail
11.10.2016
07:38:25
зачем? тебе же надо просто якорь для памяти. val t = (a,b) map(a) = v map(b) = v но опять таки от коллизий не защищается, потому что теряется уникальность для тупла в случае если один из аргументов используется больше чем в одном случае

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