Create array A of 368 functions so that A[0]() prints '0', A[1]() prints '1', etc.====================================Создайте массив 368 функциий, каждая из которых печатает индекс массива, в котором она находится, например:А[0]() -> "0"А[10]() -> "10" (Автор этого поста был предупрежден.)
Оцените, насколько это сложная задача?
На ДжаваСкрипте
>>739345 (OP)http://ideone.com/4stbSW[code lang=haskell]massiv_A :: [IO ()]massiv_A = map print [0..367]main :: IO ()main = do massiv_A !! 0 massiv_A !! 10[/code]
>>739357Пукнул твоей мандаде в комбинатор, а потом наредуцировал сверху. :)
var arr = [];for(var i = 0; i < 368; i++) { arr = function() { console.log(i); }}Сделал. Как платить удобнее?
>>739362Зря старался, мне это лень вычислять.
>>739363>arr =Проебалося.
>>739363Пиздец ты ЛС.
>>739365Сука.arr[ i ]
>>739363Я в жс не оче, но, кажется, ты обосрался.
>>739368>>739363Я про то, что переменная, которую захватывают замыкания, изменяется.
var array_of_functions = [];for(var i = 0; i < 368; ++i) array_of_functions = function() { return i; }for(var func in array_of_functions) console.log(func);
>>739363Вот так наши вероятные кандидаты и проёбывают свою работу.var arr = [];for(var i = 0; i < 368; i++) {arr = function() {console.log(i);}}arr[0]()368
>>739375Надо же, как я угадал. А ведь на жс в жизни не писал.
https://toster.ru/q/177435
>>739345 (OP)http://codepen.io/anon/pen/xVBGjWmandadopukatel'
>>739374Say what?
>>739381O!
>>739381У вас СЛИШКОМ МАЛО ФУНКЦИЙ
(n => Array.apply(null, new Array(n)).map(() => --n).reverse())(368)
>>739398Какой пиздец, господи, какой же пиздец. Вас где то в специальном месте учат писать нечитаемый код?
>>739381Ну и макаки, смотреть страшно.[code lang=javascript]A = [0, 1, , 368].map(function(i) { function () { console.log(i); }})[/code]
>>739357[code lang="kotlin;scala;ocaml;lisp;haskell;functionalnayaparashaneym"]https://jsfiddle.net/s38t4x3f/[/code]
>>739400Тащемта код элементарный, просто ты даун.
>>739402Спасибо, всё работает!
>>739403Классный сайт
>>739406Эх, сейчас бы reverse() делать, когда он в хуину не всрался. Лекции про сложность алгоритмов в ваше ПТУ ещё не завезли? А то, что твой выкидыш ничего не печатает и поэтому не выполняет поставленную задачу, ты не думал?
>>739395Неплохо, но хорошо бы также инкремент i и печать числа вынести в отдельные функции. Вдруг пригодится пореюзать.Жаль, присваивание нельзя вынести. В крестах можно было бы.
>>739409Для победителей специальной олимпиады вставлю сюда:[code lang="kotlin;scala;ocaml;lisp;haskell;functionalnayaparashaneym"]window.MaSiV_MoNdAd = [function(){console.log(0);}function(){console.log(1);}function(){console.log(2);}function(){console.log(3);}function(){console.log(4);}function(){console.log(5);}function(){console.log(6);}function(){console.log(7);}function(){console.log(8);}function(){console.log(9);}function(){console.log(10);}function(){console.log(11);}function(){console.log(12);}function(){console.log(13);}function(){console.log(14);}function(){console.log(15);}function(){console.log(16);}function(){console.log(17);}function(){console.log(18);}function(){console.log(19);}function(){console.log(20);}function(){console.log(21);}function(){console.log(22);}function(){console.log(23);}function(){console.log(24);}function(){console.log(25);}function(){console.log(26);}function(){console.log(27);}function(){console.log(28);}function(){console.log(29);}function(){console.log(30);}function(){console.log(31);}function(){console.log(32);}function(){console.log(33);}function(){console.log(34);}function(){console.log(35);}function(){console.log(36);}function(){console.log(37);}function(){console.log(38);}function(){console.log(39);}function(){console.log(40);}function(){console.log(41);}function(){console.log(42);}function(){console.log(43);}function(){console.log(44);}function(){console.log(45);}function(){console.log(46);}function(){console.log(47);}function(){console.log(48);}function(){console.log(49);}function(){console.log(50);}function(){console.log(51);}function(){console.log(52);}function(){console.log(53);}function(){console.log(54);}function(){console.log(55);}function(){console.log(56);}function(){console.log(57);}function(){console.log(58);}function(){console.log(59);}function(){console.log(60);}function(){console.log(61);}function(){console.log(62);}function(){console.log(63);}function(){console.log(64);}function(){console.log(65);}function(){console.log(66);}function(){console.log(67);}function(){console.log(68);}function(){console.log(69);}function(){console.log(70);}function(){console.log(71);}function(){console.log(72);}function(){console.log(73);}function(){console.log(74);}function(){console.log(75);}function(){console.log(76);}function(){console.log(77);}function(){console.log(78);}function(){console.log(79);}function(){console.log(80);}function(){console.log(81);}function(){console.log(82);}function(){console.log(83);}function(){console.log(84);}function(){console.log(85);}function(){console.log(86);}function(){console.log(87);}function(){console.log(88);}function(){console.log(89);}function(){console.log(90);}function(){console.log(91);}function(){console.log(92);}function(){console.log(93);}function(){console.log(94);}function(){console.log(95);}function(){console.log(96);}function(){console.log(97);}function(){console.log(98);}function(){console.log(99);}function(){console.log(100);}function(){console.log(101);}function(){console.log(102);}function(){console.log(103);}function(){console.log(104);}function(){console.log(105);}function(){console.log(106);}function(){console.log(107);}function(){console.log(108);}function(){console.log(109);}function(){console.log(110);}function(){console.log(111);}function(){console.log(112);}function(){console.log(113);}function(){console.log(114);}function(){console.log(115);}function(){console.log(116);}function(){console.log(117);}function(){console.log(118);}function(){console.log(119);}function(){console.log(120);}function(){console.log(121);}function(){console.log(122);}function(){console.log(123);}function(){console.log(124);}function(){console.log(125);}function(){console.log(126);}function(){console.log(127);}function(){console.log(128);}function(){console.log(129);}function(){console.log(130);}function(){console.log(131);}function(){console.log(132);}function(){console.log(133);}function(){console.log(134);}function(){console.log(135);}function(){console.log(136);}function(){console.log(137);}function(){console.log(138);}function(){console.log(139);}function(){console.log(140);}function(){console.log(141);}function(){console.log(142);}function(){console.log(143);}function(){console.log(144);}function(){console.log(145);}function(){console.log(146);}function(){console.log(147);}function(){console.log(148);}function(){console.log(149);}function(){console.log(150);}function(){console.log(151);}function(){console.log(152);}function(){console.log(153);}function(){console.log(154);}function(){console.log(155);}function(){console.log(156);}function(){console.log(157);}function(){console.log(158);}function(){console.log(159);}function(){console.log(160);}function(){console.log(161);}function(){console.log(162);}function(){console.log(163);}function(){console.log(164);}function(){console.log(165);}function(){console.log(166);}function(){console.log(167);}function(){console.log(168);}function(){console.log(169);}function(){console.log(170);}function(){console.log(171);}function(){console.log(172);}function(){console.log(173);}function(){console.log(174);}function(){console.log(175);}function(){console.log(176);}function(){console.log(177);}function(){console.log(178);}function(){console.log(179);}function(){console.log(180);}function(){console.log(181);}function(){console.log(182);}function(){console.log(183);}function(){console.log(184);}function(){console.log(185);}function(){console.log(186);}function(){console.log(187);}function(){console.log(188);}function(){console.log(189);}function(){console.log(190);}function(){console.log(191);}function(){console.log(192);}function(){console.log(193);}function(){console.log(194);}function(){console.log(195);}function(){console.log(196);}function(){console.log(197);}function(){console.log(198);}function(){console.log(199);}function(){console.log(200);}function(){console.log(201);}function(){console.log(202);}function(){console.log(203);}function(){console.log(204);}function(){console.log(205);}function(){console.log(206);}function(){console.log(207);}function(){console.log(208);}function(){console.log(209);}function(){console.log(210);}function(){console.log(211);}function(){console.log(212);}function(){console.log(213);}function(){console.log(214);}function(){console.log(215);}function(){console.log(216);}function(){console.log(217);}function(){console.log(218);}function(){console.log(219);}function(){console.log(220);}function(){console.log(221);}function(){console.log(222);}function(){console.log(223);}function(){console.log(224);}function(){console.log(225);}function(){console.log(226);}function(){console.log(227);}function(){console.log(228);}function(){console.log(229);}function(){console.log(230);}function(){console.log(231);}function(){console.log(232);}function(){console.log(233);}function(){console.log(234);}function(){console.log(235);}function(){console.log(236);}function(){console.log(237);}function(){console.log(238);}function(){console.log(239);}function(){console.log(240);}function(){console.log(241);}function(){console.log(242);}function(){console.log(243);}function(){console.log(244);}function(){console.log(245);}function(){console.log(246);}function(){console.log(247);}function(){console.log(248);}function(){console.log(249);}function(){console.log(250);}function(){console.log(251);}function(){console.log(252);}function(){console.log(253);}function(){console.log(254);}function(){console.log(255);}function(){console.log(256);}function(){console.log(257);}function(){console.log(258);}function(){console.log(259);}function(){console.log(260);}function(){console.log(261);}function(){console.log(262);}function(){console.log(263);}function(){console.log(264);}function(){console.log(265);}function(){console.log(266);}function(){console.log(267);}function(){console.log(268);}function(){console.log(269);}function(){console.log(270);}function(){console.log(271);}function(){console.log(272);}function(){console.log(273);}function(){console.log(274);}function(){console.log(275);}function(){console.log(276);}function(){console.log(277);}function(){console.log(278);}function(){console.log(279);}function(){console.log(280);}function(){console.log(281);}function(){console.log(282);}function(){console.log(283);}function(){console.log(284);}function(){console.log(285);}function(){console.log(286);}function(){console.log(287);}function(){console.log(288);}function(){console.log(289);}function(){console.log(290);}function(){console.log(291);}function(){console.log(292);}function(){console.log(293);}function(){console.log(294);}function(){console.log(295);}function(){console.log(296);}function(){console.log(297);}function(){console.log(298);}function(){console.log(299);}function(){console.log(300);}function(){console.log(301);}function(){console.log(302);}function(){console.log(303);}function(){console.log(304);}function(){console.log(305);}function(){console.log(306);}function(){console.log(307);}function(){console.log(308);}function(){console.log(309);}function(){console.log(310);}function(){console.log(311);}function(){console.log(312);}function(){console.log(313);}function(){console.log(314);}function(){console.log(315);}function(){console.log(316);}function(){console.log(317);}function(){console.log(318);}function(){console.log(319);}function(){console.log(320);}function(){console.log(321);}function(){console.log(322);}function(){console.log(323);}function(){console.log(324);}function(){console.log(325);}function(){console.log(326);}function(){console.log(327);}function(){console.log(328);}function(){console.log(329);}function(){console.log(330);}function(){console.log(331);}function(){console.log(332);}function(){console.log(333);}function(){console.log(334);}function(){console.log(335);}function(){console.log(336);}function(){console.log(337);}function(){console.log(338);}function(){console.log(339);}function(){console.log(340);}function(){console.log(341);}function(){console.log(342);}function(){console.log(343);}function(){console.log(344);}function(){console.log(345);}function(){console.log(346);}function(){console.log(347);}function(){console.log(348);}function(){console.log(349);}function(){console.log(350);}function(){console.log(351);}function(){console.log(352);}function(){console.log(353);}function(){console.log(354);}function(){console.log(355);}function(){console.log(356);}function(){console.log(357);}function(){console.log(358);}function(){console.log(359);}function(){console.log(360);}function(){console.log(361);}function(){console.log(362);}function(){console.log(363);}function(){console.log(364);}function(){console.log(365);}function(){console.log(366);}function(){console.log(367);}];[/code]
>>739415Сразу бы так.
>>739412>ничего не печатаетПисю пососи, даунито.
def make(i): return (lambda: print(i))ls = [make(i) for i in range(368)]
>>739424suka blyat
>>739415Такое и было на интервью. Первоначально было 4 функции, так красавцы в ручную писали.
Лиспер в тренде, все под шконку!for (var i = 0; i < 368; i++) { eval("A[" + i + "] = function () { console.log(" + i + "); }");}
>>739429Проиграл с этого лиспера
>>739345 (OP)>for (var i = 0, a = [], f = (n) => console.log(n); i < 368; i++) a = f.bind(a, i);
>>739345 (OP)>for (var i = 0, a = [], f = (n) => console.log(n); i < 368; i++) a.push(f.bind(a, i));
>>739429Мало скобочек))))
>>739431Хуле у вас в жс евал не может просто безымянную функцию вычислить и вернуть?
>>739436Получилось даже больше, чем если бы писалось на лиспе.
>>739439>eval('(function(){console.log("ты хуй")}())')Это ты ничего не можешь.
>>739402Слишком футуристично
>>739402ебанат>[0, 1, , 368].length // 4Иди умойся.
>>739448Ага, обосрался, знаю. Я ж на этих ваших жсах не писал никогда.
>>739444А, всё-таки скобок маловато было.
>>739420Даун, ты его не из консоли вызывай.
>Array(368).fill(i => console.log(i)).map((f, i) => f.bind(null, i))
new Proxy({}, {get: (_, i) => () => console.log(i)})O(1) память.
>>739471У тебя не массив.Надо таргет поставить []
>>739479Технически не массив, но работает так же.
>>739483Пиздабол. Иди учи язык.
>>739483Используйте мондадный актор и скобки.
>>739483Прежде чем выебываться, изучи основы хотя бы.
>>739491Достаточно проверки на хэзОвнПропиртю, актуаллю.
>>739494Ты проебал ТЗ по всем фронтам.Это не массив. Это не ведет себя как массив.В нем не 368 элементов.
>>739491Ну что за дауненок опять. Такое ощущение, что в треде собрались одни второсорты и посредственности. А я - звезда, которая освещает эту дыру.В задании четко указан функционал - по A[n]() выводить n. Мое решение - лучшее и идеальное.
>>739497>сказано сделать массив>не сделал его>говорит что выполнил ТЗ
>>739497В задаче четко указано сделать массивТы сделал прокси объект, который даже не ведет себя как массив.Чтобы добиться нужного функционала, тебе надо таргет сменить с {} на []и еще вводить проверки чтобы проксировать свойства.
>>739497С тем же успехом, можно было бы запилить функцию, печатающую аргумент, и этим ограничиться, бить себя в грудь и говорить - это решает поставленную задачу и печатается индекс.Вся суть горе-исполнителей.
>>739500>>739504Так я же маэстро, code ninja, а не макака. Я проявляю инициативу и расту по карьерной лестнице, пока вы катаетесь еблом по клаве, дрочируя на ТЗ.
>>739345 (OP)https://play.golang.org/p/qwDvzeb4kz
>больше 60 постов>все еще нет C++http://ideone.com/jEqwqo
>>739513Кек, плюсоебам даже нормальных замыканий не завезли
>>739515>>739509Вон, даже у го-даунов запилили.
>>739515>пишет на API для браузеров, написанных на плюсах>кукарекает что-то в сторону плюсов- Раздался пронзительный голос со стороны параши.
>>739518Пусть кукарекает, что с него взять?
>>739518Пфф... вот как напишете нормально, тогда и будете выебываться, а пока не кукарекай, вилку в руки и пиздуй оптимизировать ту парашу, что вы наговнякали.
>>739518Ничего против плюсов не имею, но почему ты просто не привел пример нормальных замыканий. Можно даже машинный код привести в пример. Все "написано на нем", но где там нормальные замыкания?
>>739527>но где там нормальные <фичанэйм>Это плюсы, в них не бывает нормальных <фичанэйм>, есть только "как смогли, так и накостылили. а хуле вы хотели, это ж плюсы"
>Array(368).fill().map((v, i) => console.log.bind(console, i))
>>739533Да вон, гляди как надо >>739357
>>739536У меня изящнее
>>739538>Array(368).fill().map((v, i) => console.log.bind(console, i))>map print [0..367]Ага, изящность аж зашкаливает
>>739496Я не он, и не спорю — ты прав.
>>739538>юзает сотню библиотечных функций для одной простой операции>У меня изящнееВ голос с долбаеба
>>739551Что несешь, поехавший.
>>739539Да, изящнее.>>739357
var arr = [];for (var i = 0; i < 368; i++) { arr = (function(i) { return function() { console.log (i); }; })(i);}По простецкому. Ебал в рот "изящность".
>>739562Пиздец, нахуя создал 368 замыканий?
>>739562>IIFE>no arrow functions>arr>368 closures with unnecessary complexity>По_простецкому>2016
>>739561Приглядись к коду. То, что написал ты, соответствует >>739539>>map print [0..367]этой строчке
>>739562window.peremenaya = new Function (alert[('ti','daun'].join(' ebaniy '));
>>739572У тебя мандада сломалась.
Соснули все!A=( `seq 0 367 | sed s_^_echo,_` )http://ideone.com/HlOXn2
>>739569Нет.Не соответствует. Тебе еще надо будет подтянуть IO, как минимум
>>739562Почти правильноarr.push( (function(i) {return function() {console.log (i);};})(i););
>>739577Куда подтянуть? О чем ты?
>>739581Если ты отдашь компилятору map print [0..367]Он выбросит ошибку.Значит это нерабочая программа.
>>739580И ты нахуя создал 368 замыканий ненужныйх. Ты тоже дебил?
>>739584>Prelude> :t map print [0..367]>map print [0..367] :: [IO ()]Всё работает. О чем ты?
>>739562>>739580>for (var a = [], i = 0; i < 368; i++) a.push (console.log.bind (console, i))
>>739562У тебя небольшая ошибка.var arr = [];for (var i = 0; i < 368; i++) {arr = (function(i) {return function() {console.log (i);};})(i);}
>>739593Учись>for (var a = []; a.length < 368; a.push (console.log.bind(console, a.length)));
>>739596Дай свою руку, дружище! Я тебе отрублю её нахуй
>>739598Всё работает.
Кто-то знает, что это за хуйня? Если припишемvar r=[];for (i=0;i<10;i++){r=i;}То у нас же не будет r[5] == 10
>>739605var r=[];for (i=0;i<10;i++){r=i;}
>>739605Оно и не должно.Ты же устанавливаешь r[5] = 5С чего бы ему быть равно 10?
>>739611А почему функция бы возвратила 10?
>>739605Потому что тут>r[_i_]=i;ты присваиваешь _значение_, а в случае с функцией захватываешь саму переменную
>>739617какая?var r=[];for (n=0;n<10;n++){r[n]=(function(n){ return n})(n);}r[5] по-прежнему равно 5
Как платить удобнее?
>>739622Не кошерно.Асм нужен.
>>739622Хуйцами
>>739622А что за редактор справа, и почему он такой няшный?
var arr = []; for (var i = 0; i < 10; i++) { arr = (function(){console.log(i)}); } arr[5]() // =10Почему?
>>739635>Caret>>739645если в крестовых терминах: потому что i в замыкание передается по ссылке.
>>739726>что i в замыкание передается по ссылке.Нет, у него как раз нет замыкания, и поэтому он проебывается.>>739645>Почему?потому что на момент вызова у тебя i = 10.Замени var i на let iчтобы ограничить область видимости переменной.
>>739645var arr = [];for (var i = 0; i < 10; i++) {arr[\i] = (function(){console.log(i)});}console.log(i) // 10сам не понимаешь что ли
>>739726Примитивы никогда не передаются по ссылке.
Давайте специальную олимпиадку устроим, а то давно не было.
>>739740С нормальной задачкой, а не как у ОП-хуя
>>739731>Нет, у него как раз нет замыканияhttps://developer.mozilla.org/en/docs/Web/JavaScript/Closures>>739734В крестах? http://ideone.com/4s762q
class A {public:\tstd::func<int()> operator[] (int i) { return [](){return i} }};auto a = make_unique<A>a[5]() // <- 5a[6]() // <- 6Примерно так, там может еше по типам отладить надо будет.
>>739732А не должно ли оно в функцию записать значение i, а не вечную ссылку на него? Как такое сделать если не так?
>>739786>А не должно ли оно в функцию записать значениеНет не должно.>Как такое сделать если не такСоздав замыкание в IIFE>(function(i){return function(){console.log(i)}})(i)Но это плохая практика. Ты насоздаешь замыканий на каждую итерацию цикла.А теперь представь, что у тебя несколько тысяч итераций. Следовательно несколько тысяч замыканий.Потом не говори, что язык хуевый,а не руки у тебя.
>>739786Правильно делать через letfor (let i = 0)
на эликсири: arr = for i <- 0..367, do: fn -> IO.puts(i) end Enum.at(arr, 0).() // 0 Enum,at(arr, 5).() // 5
>>739786Вот >>739596и не нужно никаких i
>>739824arr = for i <- 0..367, into: %{}, do: {i, fn -> IO.puts(i) end}arr[228].() // 228
>>739829{:error, 'ti pituh))'}
>>739345 (OP)Я написал и кончилhttp://ideone.com/OVvf8I
>>739937Чего только не сделают, лишь бы на лиспе не писать.http://ideone.com/laBjME
>>739345 (OP)var A = [];for (var i = 0; i < 368; i++) (function(index) { A[index] = function() { console.log(index); };})(i);Учу ваниль 4 месяца-кун.
>>739976Пиздец. Это ваш хваленый лисп?То что на js делается в одну строчку и в четыре операции, на лиспе развернуто в такую простыню?
[code lang="sml"]tabulate (368, (fn n => fn () => print (Int.toString n)))[/code]
>>739375Лол.[code lang="scala"](0 until 368).map(i => () => println(i))[/code]
>>739856спасибо)
>>739345 (OP)> (Автор этого поста был предупрежден.)https://www.youtube.com/watch?v=qCuaPUVFbzg
>>739999То просто калька с крестового кода.>То что на js делается в одну строчку и в четыре операцииНет, полный аналог того кода ты в четыре операции не сделаешь.
Javahttps://ideone.com/vRna2Y
>>740358А где final static abstract virtual void KoKoKoKudah <Kukarek>? Мы Вам перезвоним.
>>740373Сука, буквально на пару секунд опередил
>>740358>@FunctionalInterface private interface PrintFunction { public void execute(); }А это что за костыль?
>>740376Это в Java такую лямбду не завезли - определил руками https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.htmlЕсли я слепой мудак - ткните носом, пожалуйста.
>>740381>https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.htmlОй бляя.. Так всё плохо? Я-то думал, современная ява уже почти нормальным языком стала, а там всё через жопу
>>740373[code lang="java"]public final class Vskukarek implements Butthurt { @override void kokoko() { System.out.println("[/code]>А где final static abstract virtual void KoKoKoKudah <Kukarek>?>Мы Вам перезвоним.[code lang="java"] "); }}[/code]
>>740384>Так всё плохо?Не все, но можно и получше, да.
>>740397Не, ну ты понимаешь, что смолтолк в 80м году был более выразительным да, уже в 80м там были первоклассные блоки кода ака замыкания, чем сегодняшняя ява. Нахуй так жить?
>>740399За деньги можно писать хоть на Васике.
>>740400За деньги можно и не программировать.
>>740405На том и порешим.
>>740394Такой ебнутый язык.Что java, что кресты.Сколько раз не хотел выучить, этот ебануиый синтаксис отталкивает. Люто просто.Зачем так жить.
>>740422Разрешаю тебе писать на любом другом.
>>740218Я лисп читать не умею. Напиши по шаговый алгоритм, что тут происходит >>739976Если не сложно.
>>740425Да суть не в этом.Это само собой.Но ведь сам факт.Вроде си-подобный, но все равно какая-то эзотерика и перегруженность.
>>740381Runnable
>>740429>Вроде си-подобный, но все равно какая-то эзотерика и перегруженность.А ты си код видел? Не хэловорлд, а полноценный проект вымазанный макросами, еблёй с указателями, битовыми полями и прочей няшностью?
>>741617Действительно. Спасибо, Антош.Java https://ideone.com/OlUWsB
C++ https://ideone.com/IspL0tВ 6ой строке в ретурне временный объект не создаётся?
>>741803Нет, ты возвращаешь ссылку на один и тот же класс. Выше уже было правильное решение на плюсах через std::function.Мы вам перезвоним.
>>741803>>741994Полгода уже ничего на плюсах не писал, так что завтыкал с точками-запятыми, забыл закапчурить переменную в лямбде и все такое. Вот исправленный и компилируемый код: http://ideone.com/j9K89D>>739772-кун
>>742114Я тебе сейчас секрет открою, но ничего перегружать не нужно было – достаточно пихать в вектор лямбду захватившую значение.
I can into JS.ES6 version:'use strict';var arr = [];for (let i = 368; i--;) { arr = () => { return ((val) => { console.log(val); })(i); };}arr[10]();No ES6 version:'use strict';var arr = [];for (let i = 368; i--;) { arr = function() { return (function(val) { console.log(val); }.bind(this))(i); };}arr[8]();Проверяйте.
>>739824>>739829Чуханы.Enum.map(0..368, &(IO.puts &1))
https://ideone.com/gaPfoYЯ разочаровался в Пиздоне.
https://play.rust-lang.org/?gist=e38f1beb3a90b39b5d66b3261320410c
>>742266Ты даун простhttps://ideone.com/2PHJTl
>>739406Анус твой элементарный, макака. Если код делает такую простую вещь и при этом в первую же секунду, как кто-то на него взглянул, ему не ясно, что он делает, то этот не код, а кусок кала.
Ебать проблевался с треда. Неудивительно, что у местных чмох хроническое МЫ ПЕРЕЗВОНИМ. Если бы увидел у кого-то из своих подобную парашу, тут же бы с вертушки ему пояснил за всю хуйнюфигурально.
>>739406>>742408хуйнюнаписал этот >>739398Он просто создал массив из 368 элементов значением в каждом которго является индекс этого массива.Где функции маня?А чтобы сделать то. что сделал ты вообще не надо было так заморачиваться.
>>739420>Писю пососи, даунито.Ебанутый.Ты выводишь значение arr[10]А должен делать arr[10]()В этом вся суть. Пошел вон из профессии.
>>742396Я так понял (х) нужно для копирования? Ткни место в документации.
>>742758Почитай про замыкания, они работают практически одинаково во всех языках.
>>739345 (OP)>funcs = [lambda x=x: x for x in range(369)]wow such programmer
>>739622нах те асм, долбоебэто же и на сишечке можно сделоть
>>741634>вымазанный макросами, еблёй с указателями, битовыми полямиструктурки наложеные на голую память забыл добавить
>>741994Так это даже лучше чем плодить новые объекты и каждый инициализировать. Экономнее выходит.
>>742965Условие задачи прочитай, экономист. Создать массив функций, а не вызвать n раз функцию.
>>742947Сами структурки – это ничего.Веселье там начинается с объеденений и редактирования выравнивания в этих самых структурах.
>>739414Начал было писать всё как положено, но уже на комментах сдулся https://ideone.com/vYY9hH
>>743002Отлично!
>>742128Слухай, а таки да. Спасибо за наводочку, чет как-то не подумал сразу даже.
>>739357>Массив>Список
>>742220>>742220>Enum.map(0..368, &(IO.puts &1))лист из :ok у тебя создался, не из функций
>>742220arr = Enum.reduce(367..0, [], fn i, acc -> [fn -> IO.puts(i) end|acc] end)пофиксил за тебя
>>743161> В джяваскрипте вообще Object
>>739345 (OP)Groovy((0..367).collect{k->{->k}})[123]()http://ideone.com/vz8X29
>>743228Принтлн должен быть внутри, ты обосрался.
>>743234Fix: http://ideone.com/vz8X29
>>742989Оператор [] переопределён значит это массив.
>>743194Открой для себя instanceof
>>743184acc тут нахуя?
>>743423> "string" instanceof String; // false
>>743423> typeof null // object > null instanceof Object // false
>>739364Содомит!
[ fun() -> X end || X <- lists:seq(0, 368) ]http://ideone.com/NZyDKO
>>743714а как ещё итоговый список составить?
[CODE]object array { def apply(i: Int) = () => println(i); } array(12)()[/CODE]
var a = new Func<int>[368];for (int i = 0; i < a.Length; ++i) { var n = i; a = () => n;}
>>744314Это не массив
Годный тред, на самом деле.На примере такой мелкой простейшей задачки, можно наблюдать насколько часто и насколько сильно исполнители неправильно понимают или не выполняют ТЗ. По глупости, или же с намеренной инициативой, в итоге делают совершенно не то, что нужно. Отличный такой срез, отражающий всю суть в индустрии.
>>743838>>743839Поехавший? Ты зачем примитивы чекаешь на инстанс?
>>744314Если это ввглядит, как массив, и оьрвщение как к массиву...
http://jsbin.com/babasuhuwu/edit?js,console
>>744817> джяваскрипт> примитивыМартышка продолжает обсираться.
>>744823>console.log.bind(console, a.length)Что-то мне подсказывает, что реально такое не будет работать.
Luahttp://ideone.com/QX3sef
>>744402Два чая
>>744402Ты конечно только с индексами массива в цикле проехался.>>745400
>>745335>реально такое не будет работать.>уже работаетТы здоров?
>>744912Иди-ка выучи язык.
>>745415Видимо, нет. Мне почему-то казалось, что console.log нельзя биндить.
>>745427console.log это функция, которая не будет работать если у нее this не consoleВ другое место ты не забиндишь ее.
>>745432а в ноде можно))
>>745456Потому что в ноде console это поток вывода stdout, а не консоль.
>>739345 (OP)НА-ХУ-Я?
>>745522Такие ситуации встречаются постоянно, пользуя node async.js, например. Параллелизировал как-то агрегацию в mongodb, разбивая один запрос на кучу более мелких, например, аггрегацию за год разбивал на 365 агрегаций по дню, вот точно такая задача нужна была.
>>739425Нуфаги не могут в петон.