@codenamecrud

Страница 590 из 1009
Vlad
26.04.2017
20:46:13
Даже так можно: inject(nil){ |buffer, e| buffer ||= [some code].as(&:self_if_any_not_nil) }

as возвращает результат, tap возвращает объект, который тапился

Danila
26.04.2017
20:47:03
а проблему какую решаешь?

Vlad
26.04.2017
20:47:30
Ты ведь издеваешься?

Google
Danila
26.04.2017
20:47:38
нет

я не понимаю что тут происходит

я же говорю, у меня с кодом плохо

мне проще на словах

Kirill
26.04.2017
20:47:59
+1

Vlad
26.04.2017
20:48:19
В общем, я показал, что as != tap, кому надо - пользуйтесь

Danila
26.04.2017
20:48:37
так ты объяснишь или нет, что этот код делает?

и зачем такое может пригодиться

может кто то другой мне пояснит?

если автор не хочет

@bikolya поясни ты

Nikolay
26.04.2017
20:50:56
да ты троллишь видимо

чего там может быть непонятно?

Google
Nikolay
26.04.2017
20:51:13
as возвращает результат

tab возвращает объект

tap != as

вот и все

Danila
26.04.2017
20:51:33
:(

Nikolay
26.04.2017
20:52:54
вместо select ты юзаешь рефайнмент и as, не читал чтоли книгу матца?

Danila
26.04.2017
20:53:33
не, я в джаву не умею

Nikolay
26.04.2017
20:54:49
ну вот и образовывайся, юниор

Danila
26.04.2017
20:55:07
пиздец говно конечно какое то

просишь человека объяснить какую он задачу решает

он говорит "ты че тралишь"

типа "ты че дебил, люди такие вещи пишут по утрам чтоб микроволновку открыть"

манямирок какой то

Vlad
26.04.2017
20:59:58
просишь человека объяснить какую он задачу решает
Это долго и не нужно, я поделился сниппетом (считай, опытом)

Danila
26.04.2017
21:00:18
опытом чего?

опыт это решение проблем

а не написание метаговна

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

?

Vlad
26.04.2017
21:02:52
Я не согласен, но мне похуй

Google
Danila
26.04.2017
21:03:08
вот и уёбывай

и сниппет свой прихвати

Anton
26.04.2017
21:21:40
Даже так можно: inject(nil){ |buffer, e| buffer ||= [some code].as(&:self_if_any_not_nil) }
супер, только скажи, зачем писать такой стремный однострочник с вложенными блоками и инжектом, когда можно этот же пример написать проще и без as? inject(nil){ |buffer, e| buffer ||= [some code].as{ |a| a unless a.all?(&:nil?) }} each { |e| breack([some code]) if [some code].none? }

Danila
26.04.2017
21:22:16
бряк

пинки

Anton
26.04.2017
21:23:23
бряк
бывает, так что пофиг

Danila
26.04.2017
21:23:28
это просто местный любитель локального патчинга и метапрограммирования

лучше не вступать в дискач

Anton
26.04.2017
21:24:12
Anton
26.04.2017
21:25:36
Нужен лучший нейминг
вряд ли, скорее просто абстракция пустая

Anton
26.04.2017
21:25:55
хотя, если ты приведешь мне пример, когда оно действительно работает - я поменяю свое мнение

пока я этого не видел

Danila
26.04.2017
21:26:02
https://twitter.com/javascriptdaily/status/856267407106682880

Vlad
26.04.2017
21:26:40
each { |e| break([some code]) if [some code].none? } - some code может быть длинным

Anton
26.04.2017
21:28:40
переменную сделать?

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

вынести все в метод

или ты перл разработчик со стажем?

Google
Vlad
26.04.2017
21:29:19
Я согласен, что твоё решение более элегантно

Возможно, as в данном случае не нужен, и не нужен вообще

А, кстати, inject я использую для того, чтобы вернуть nil в случае, если ни одно условие внутри не сработает

each же вернет изначальный объект

Если брейка ни разу не случится

Значит, as оправдан только для уменьшения кол-ва кода

Именно для этого он нужен, чтобы не объявлять переменную. Только для этого. Всё. Это может и не супер-плюс, и Обстракции сложные непонятные, но с задачей "уменьшить кол-во кода" он справляется

Nikolay
26.04.2017
21:32:57
сделай доклад на конференцию или митап про as

может зайдет

Admin
ERROR: S client not available

Nikolay
26.04.2017
21:33:01
и люди начнут юзать

Danila
26.04.2017
21:33:15
на митапе, да

Nikolay
26.04.2017
21:33:17
можешь в AS добавить свой as, dhh точно примет

Danila
26.04.2017
21:33:24
как раз будешь на уровне с другими

Vlad
26.04.2017
21:33:56
*лавров - дебилы, блять

Anton
26.04.2017
21:34:27
each же вернет изначальный объект
>> (1..5).find { |i| i == 10 } => nil >> (1..5).find { |i| i == 3 } => 3

Nikolay
26.04.2017
21:34:56
Anton
26.04.2017
21:35:38
Именно для этого он нужен, чтобы не объявлять переменную. Только для этого. Всё. Это может и не супер-плюс, и Обстракции сложные непонятные, но с задачей "уменьшить кол-во кода" он справляется
т.е. ты добавил свою никому не понятную обстракцию для того, что бы в каком-то примере, который сам привести не можешь, не объявлять лишнюю переменную? тем самым ты увеличив сложность (понимания) кода, но зато уместил все в одной строке. я правильно тебя понял?

вот тебе с find пример, сравни inject(nil){ |buffer, e| buffer ||= [some code].as{ |a| a unless a.all?(&:nil?) }} find { |e| [some code].none? }

эти 2 строки делают одно и то же

Google
Vlad
26.04.2017
21:38:33
вот тебе с find пример, сравни inject(nil){ |buffer, e| buffer ||= [some code].as{ |a| a unless a.all?(&:nil?) }} find { |e| [some code].none? }
Таки find вернет что-то из объекта, у которого он вызывается, а мой пример - что-то из [some_code]

Danila
26.04.2017
21:38:57
наконец то я понял чего он хотел добиться

кек

Vlad
26.04.2017
21:39:00
Сейчас покумекаю над примером (из реальной задачи вытащить не могу)

Anton
26.04.2017
21:39:18
Danila
26.04.2017
21:39:27
потому что nda

Anton
26.04.2017
21:39:29
наконец то я понял чего он хотел добиться
запутать все так, что бы никто ничего не понял?

Vlad
26.04.2017
21:39:46
потому что реального применения нет? лол
Нет, слишком сложный участок кода, без контекста не разобраться

Danila
26.04.2017
21:39:59
написать меньше кода!

хуевый код значит

Anton
26.04.2017
21:40:24
Нет, слишком сложный участок кода, без контекста не разобраться
и ты его запул еще больше своим as, но при этом уменьшив количество символов?

Danila
26.04.2017
21:40:32
контекст - два предложения плейнтекстом

Vlad
26.04.2017
21:42:35
Я потрачу на это много времени, поэтому как-нибудь потом

Danila
26.04.2017
21:43:02
это ты

Vlad
26.04.2017
21:43:32
Нет, не похож. Глянь аватарку, я, как минимум, брюнет

Danila
26.04.2017
21:45:16
а ты уверен что в твоём возрасте уже законно рефайнить?

Vlad
26.04.2017
21:46:16
Лол http://stackoverflow.com/questions/7878687/combinatory-method-like-tap-but-able-to-return-a-different-value http://stackoverflow.com/questions/26378890/ruby-reuse-value-in-a-block-without-assigning-it-to-variable-write-object-meth

Dimon
26.04.2017
21:52:55
я кажется понял, ты обфусцируешь код

Klaus
27.04.2017
04:30:53
Поздно утром только сони Спят, свернувшись калачом, Мы встаём, лишь солнце тронет Нас своим косым лучом.

Страница 590 из 1009