Это копия, сохраненная 2 июня 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
A[0]() prints '0',
A[1]() prints '1', etc.
====================================
Создайте массив 368 функциий, каждая из которых печатает индекс массива, в котором она находится, например:
А[0]() -> "0"
А[10]() -> "10"
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]
for(var i = 0; i < 368; i++) {
arr = function() {
console.log(i);
}
}
Сделал. Как платить удобнее?
Пиздец ты ЛС.
for(var i = 0; i < 368; ++i) array_of_functions = function() { return i; }
for(var func in array_of_functions) console.log(func);
Вот так наши вероятные кандидаты и проёбывают свою работу.
var arr = [];
for(var i = 0; i < 368; i++) {
arr = function() {
console.log(i);
}
}
arr[0]()
368
Надо же, как я угадал. А ведь на жс в жизни не писал.
Say what?
O!
Какой пиздец, господи, какой же пиздец. Вас где то в специальном месте учат писать нечитаемый код?
Ну и макаки, смотреть страшно.
[code lang=javascript]
A = [0, 1, , 368].map(function(i) {
function () { console.log(i); }
})
[/code]
[code lang="kotlin;scala;ocaml;lisp;haskell;functionalnayaparashaneym"]
https://jsfiddle.net/s38t4x3f/
[/code]
Спасибо, всё работает!
Эх, сейчас бы reverse() делать, когда он в хуину не всрался. Лекции про сложность алгоритмов в ваше ПТУ ещё не завезли? А то, что твой выкидыш ничего не печатает и поэтому не выполняет поставленную задачу, ты не думал?
Неплохо, но хорошо бы также инкремент i и печать числа вынести в отдельные функции. Вдруг пригодится пореюзать.
Жаль, присваивание нельзя вынести. В крестах можно было бы.
Для победителей специальной олимпиады вставлю сюда:
[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]
Для победителей специальной олимпиады вставлю сюда:
[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]
Сразу бы так.
return (lambda: print(i))
ls = [make(i) for i in range(368)]
Такое и было на интервью. Первоначально было 4 функции, так красавцы в ручную писали.
for (var i = 0; i < 368; i++) {
eval("A[" + i + "] = function () { console.log(" + i + "); }");
}
>for (var i = 0, a = [], f = (n) => console.log(n); i < 368; i++) a.push(f.bind(a, i));
Получилось даже больше, чем если бы писалось на лиспе.
Слишком футуристично
Ага, обосрался, знаю. Я ж на этих ваших жсах не писал никогда.
А, всё-таки скобок маловато было.
Даун, ты его не из консоли вызывай.
>Array(368).fill(i => console.log(i)).map((f, i) => f.bind(null, i))
O(1) память.
Пиздабол. Иди учи язык.
Используйте мондадный актор и скобки.
Ты проебал ТЗ по всем фронтам.
Это не массив. Это не ведет себя как массив.
В нем не 368 элементов.
Ну что за дауненок опять. Такое ощущение, что в треде собрались одни второсорты и посредственности. А я - звезда, которая освещает эту дыру.
В задании четко указан функционал - по A[n]() выводить n. Мое решение - лучшее и идеальное.
В задаче четко указано сделать массив
Ты сделал прокси объект, который даже не ведет себя как массив.
Чтобы добиться нужного функционала, тебе надо таргет сменить с {} на []
и еще вводить проверки чтобы проксировать свойства.
С тем же успехом, можно было бы запилить функцию, печатающую аргумент, и этим ограничиться, бить себя в грудь и говорить - это решает поставленную задачу и печатается индекс.
Вся суть горе-исполнителей.
>пишет на API для браузеров, написанных на плюсах
>кукарекает что-то в сторону плюсов
- Раздался пронзительный голос со стороны параши.
Пусть кукарекает, что с него взять?
Пфф... вот как напишете нормально, тогда и будете выебываться, а пока не кукарекай, вилку в руки и пиздуй оптимизировать ту парашу, что вы наговнякали.
Ничего против плюсов не имею, но почему ты просто не привел пример нормальных замыканий. Можно даже машинный код привести в пример. Все "написано на нем", но где там нормальные замыкания?
>но где там нормальные <фичанэйм>
Это плюсы, в них не бывает нормальных <фичанэйм>, есть только "как смогли, так и накостылили. а хуле вы хотели, это ж плюсы"
>Array(368).fill().map((v, i) => console.log.bind(console, i))
>Array(368).fill().map((v, i) => console.log.bind(console, i))
>map print [0..367]
Ага, изящность аж зашкаливает
Я не он, и не спорю — ты прав.
>юзает сотню библиотечных функций для одной простой операции
>У меня изящнее
В голос с долбаеба
Что несешь, поехавший.
for (var i = 0; i < 368; i++) {
arr = (function(i) {
return function() {
console.log (i);
};
})(i);
}
По простецкому. Ебал в рот "изящность".
Пиздец, нахуя создал 368 замыканий?
Приглядись к коду. То, что написал ты, соответствует >>739539
>>map print [0..367]
этой строчке
У тебя мандада сломалась.
Если ты отдашь компилятору map print [0..367]
Он выбросит ошибку.
Значит это нерабочая программа.
И ты нахуя создал 368 замыканий ненужныйх. Ты тоже дебил?
У тебя небольшая ошибка.
var arr = [];
for (var i = 0; i < 368; i++) {
arr = (function(i) {
return function() {
console.log (i);
};
})(i);
}
Всё работает.
var r=[];
for (i=0;i<10;i++){
r=i;
}
То у нас же не будет
r[5] == 10
Потому что тут
>r[_i_]=i;
ты присваиваешь _значение_, а в случае с функцией захватываешь саму переменную
какая?
var r=[];
for (n=0;n<10;n++){
r[n]=(function(n){ return n})(n);
}
r[5] по-прежнему равно 5
Хуйцами
for (var i = 0; i < 10; i++) {
arr = (function(){console.log(i)});
}
arr[5]() // =10
Почему?
>что i в замыкание передается по ссылке.
Нет, у него как раз нет замыкания, и поэтому он проебывается.
>>739645
>Почему?
потому что на момент вызова у тебя i = 10.
Замени var i на let i
чтобы ограничить область видимости переменной.
var arr = [];
for (var i = 0; i < 10; i++) {
arr[\i] = (function(){console.log(i)});
}
console.log(i) // 10
сам не понимаешь что ли
С нормальной задачкой, а не как у ОП-хуя
>Нет, у него как раз нет замыкания
https://developer.mozilla.org/en/docs/Web/JavaScript/Closures
>>739734
В крестах? http://ideone.com/4s762q
public:
\tstd::func<int()> operator[] (int i) { return [](){return i} }
};
auto a = make_unique<A>
a[5]() // <- 5
a[6]() // <- 6
Примерно так, там может еше по типам отладить надо будет.
А не должно ли оно в функцию записать значение i, а не вечную ссылку на него? Как такое сделать если не так?
>А не должно ли оно в функцию записать значение
Нет не должно.
>Как такое сделать если не так
Создав замыкание в IIFE
>(function(i){return function(){console.log(i)}})(i)
Но это плохая практика. Ты насоздаешь замыканий на каждую итерацию цикла.
А теперь представь, что у тебя несколько тысяч итераций. Следовательно несколько тысяч замыканий.
Потом не говори, что язык хуевый,а не руки у тебя.
arr = for i <- 0..367, do: fn -> IO.puts(i) end
Enum.at(arr, 0).() // 0
Enum,at(arr, 5).() // 5
var A = [];
for (var i = 0; i < 368; i++) (function(index) {
A[index] = function() { console.log(index); };
})(i);
Учу ваниль 4 месяца-кун.
Пиздец.
Это ваш хваленый лисп?
То что на js делается в одну строчку и в четыре операции, на лиспе развернуто в такую простыню?
tabulate (368, (fn n => fn () => print (Int.toString n)))
[/code]
спасибо)
То просто калька с крестового кода.
>То что на js делается в одну строчку и в четыре операции
Нет, полный аналог того кода ты в четыре операции не сделаешь.
Сука, буквально на пару секунд опередил
>@FunctionalInterface private interface PrintFunction { public void execute(); }
А это что за костыль?
Это в Java такую лямбду не завезли - определил руками https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html
Если я слепой мудак - ткните носом, пожалуйста.
>https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html
Ой бляя.. Так всё плохо? Я-то думал, современная ява уже почти нормальным языком стала, а там всё через жопу
[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]
Не, ну ты понимаешь, что смолтолк в 80м году был более выразительным да, уже в 80м там были первоклассные блоки кода ака замыкания, чем сегодняшняя ява. Нахуй так жить?
На том и порешим.
Такой ебнутый язык.
Что java, что кресты.
Сколько раз не хотел выучить, этот ебануиый синтаксис отталкивает. Люто просто.
Зачем так жить.
Да суть не в этом.
Это само собой.
Но ведь сам факт.
Вроде си-подобный, но все равно какая-то эзотерика и перегруженность.
>Вроде си-подобный, но все равно какая-то эзотерика и перегруженность.
А ты си код видел? Не хэловорлд, а полноценный проект вымазанный макросами, еблёй с указателями, битовыми полями и прочей няшностью?
В 6ой строке в ретурне временный объект не создаётся?
Нет, ты возвращаешь ссылку на один и тот же класс. Выше уже было правильное решение на плюсах через std::function.
Мы вам перезвоним.
>>741994
Полгода уже ничего на плюсах не писал, так что завтыкал с точками-запятыми, забыл закапчурить переменную в лямбде и все такое. Вот исправленный и компилируемый код: http://ideone.com/j9K89D
>>739772-кун
Я тебе сейчас секрет открою, но ничего перегружать не нужно было – достаточно пихать в вектор лямбду захватившую значение.
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]();
Проверяйте.
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]();
Проверяйте.
Я разочаровался в Пиздоне.
Анус твой элементарный, макака. Если код делает такую простую вещь и при этом в первую же секунду, как кто-то на него взглянул, ему не ясно, что он делает, то этот не код, а кусок кала.
>Писю пососи, даунито.
Ебанутый.
Ты выводишь значение arr[10]
А должен делать arr[10]()
В этом вся суть. Пошел вон из профессии.
Почитай про замыкания, они работают практически одинаково во всех языках.
>вымазанный макросами, еблёй с указателями, битовыми полями
структурки наложеные на голую память забыл добавить
Так это даже лучше чем плодить новые объекты и каждый инициализировать. Экономнее выходит.
Условие задачи прочитай, экономист. Создать массив функций, а не вызвать n раз функцию.
Сами структурки – это ничего.
Веселье там начинается с объеденений и редактирования выравнивания в этих самых структурах.
Отлично!
Слухай, а таки да. Спасибо за наводочку, чет как-то не подумал сразу даже.
Оператор [] переопределён значит это массив.
Содомит!
а как ещё итоговый список составить?
object array {
def apply(i: Int) = () => println(i);
}
array(12)()
[/CODE]
for (int i = 0; i < a.Length; ++i) {
var n = i;
a = () => n;
}
Это не массив
На примере такой мелкой простейшей задачки, можно наблюдать насколько часто и насколько сильно исполнители неправильно понимают или не выполняют ТЗ. По глупости, или же с намеренной инициативой, в итоге делают совершенно не то, что нужно.
Отличный такой срез, отражающий всю суть в индустрии.
Если это ввглядит, как массив, и оьрвщение как к массиву...
>console.log.bind(console, a.length)
Что-то мне подсказывает, что реально такое не будет работать.
Иди-ка выучи язык.
console.log это функция, которая не будет работать если у нее this не console
В другое место ты не забиндишь ее.
Потому что в ноде console это поток вывода stdout, а не консоль.
НА-ХУ-Я?
Такие ситуации встречаются постоянно, пользуя node async.js, например. Параллелизировал как-то агрегацию в mongodb, разбивая один запрос на кучу более мелких, например, аггрегацию за год разбивал на 365 агрегаций по дню, вот точно такая задача нужна была.
Это копия, сохраненная 2 июня 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.