ДействиеСценарий / Говнокод #10215 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
appendExclamation("one")("two")("three")("four")("five");
function appendExclamation(str:String):Function{
  trace(str + "! ");
  return appendExclamation;
}
/* outputs:
one!
two!
three!
four!
five!
*/

как-то натолкнулся на одном из блогов

Запостил: lammar lammar, (Updated )

Комментарии (9) RSS

    • И что, разве это удобно?
      Вспоминается очень старый прикол про "АрВид" - "Наконец-то специалисты добились воспроизведения видео с АрВид-а". (Школоте не понять!)
      Ответить
  • И вот тут, внезапно, хаскель слился 🙂 JS такой код позволяет сделать, а он - нет.
    Ответить
    • 1. Код в разделе экшонСкрипт, на что намякае
      >(str:String):Function{
      2. Уверен что в хаскиле можно.
      Ведь даже в убогой, антифункциональной жабе за 10-20 минут можно используя паттерны стратегия, интерпретатор и интерфейс с флюент-методoм call:
      inteface Func(){
      public Func call(String s);
      }
      наваять похожее.
      Результирующий вызов примерно такой:
      func.call("1").call("2").call("3")....
      Ответить
      • 1. Упс, сорри, думал что это js.

        2. В языке с динамической типизацией такое запросто можно запилить.

        А вот у хаскеля (да собственно и у с\с++) проблема с выводом типа для этой функции - он не может вывести тип для функции, которая может вернуть сама себя.

        P.S. Флюент-метод не совсем то, с ним то почти в любом языке можно запилить. Тут прикол как раз в том, чтобы не юзать call и передавать параметр результату предыдущего вызова 🙂
        Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8