- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
appendExclamation("one")("two")("three")("four")("five");
function appendExclamation(str:String):Function{
trace(str + "! ");
return appendExclamation;
}
/* outputs:
one!
two!
three!
four!
five!
*/
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−159
appendExclamation("one")("two")("three")("four")("five");
function appendExclamation(str:String):Function{
trace(str + "! ");
return appendExclamation;
}
/* outputs:
one!
two!
three!
four!
five!
*/
как-то натолкнулся на одном из блогов
Lure Of Chaos 08.05.2012 09:31 # +1
ZX_Spectrum 08.05.2012 22:06 # −2
Вспоминается очень старый прикол про "АрВид" - "Наконец-то специалисты добились воспроизведения видео с АрВид-а". (Школоте не понять!)
bormand 08.05.2012 12:27 # 0
3.14159265 08.05.2012 14:52 # +1
>(str:String):Function{
2. Уверен что в хаскиле можно.
Ведь даже в убогой, антифункциональной жабе за 10-20 минут можно используя паттерны стратегия, интерпретатор и интерфейс с флюент-методoм call:
inteface Func(){
public Func call(String s);
}
наваять похожее.
Результирующий вызов примерно такой:
func.call("1").call("2").call("3")....
bormand 08.05.2012 15:53 # 0
2. В языке с динамической типизацией такое запросто можно запилить.
А вот у хаскеля (да собственно и у с\с++) проблема с выводом типа для этой функции - он не может вывести тип для функции, которая может вернуть сама себя.
P.S. Флюент-метод не совсем то, с ним то почти в любом языке можно запилить. Тут прикол как раз в том, чтобы не юзать call и передавать параметр результату предыдущего вызова :)
FAKYOUINTIRNEAT 08.05.2012 16:08 # 0
bormand 08.05.2012 16:15 # 0
lucidfoxGovno 08.05.2012 22:28 # 0
return arguments.callee;
mindfreakthemon 09.05.2012 16:11 # +2