1. JavaScript / Говнокод #27943

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    function test<T>(t: T)
    {
    	return t;
    }
    
    function main()
    {
        print(test(10), test("Hello"));
        print("done.");
    }

    ура ура.. новая говно-фича подоспела.. а вы думали я тут бездельничаю.. новый год встречаю?

    Запостил: ASD_77, 11 Января 2022

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

    • ну что скажете :)? красиво?
      Ответить
    • О, функция, достойная пера дзенского мастера. Как компилируется, через мономорфизацию?
      Ответить
      • нет.. через copy/paste конечно :)
        Ответить
        • Для каждого типа создаётся специализация, типа test_1 для инта, test_2 для строки и т.п., так?
          Ответить
        • То же самое, разве нет https://en.wikipedia.org/wiki/Monomorphization ?
          Ответить
          • а я думал это когда все варианты в один запихать
            Ответить
            • Если я правильно читаю, то это про превращение полиморфной функции в кучку мономорфных. Как планируешь кобенаторный взрыв предотвращать?
              Ответить
              • через any конечно :)
                Ответить
              • А что за кобенаторный взрыв? Типа, если для 40000 типов вызвать эту функцию, то программу РАЗБАРАБАНИТ?
                Ответить
                • У тебя что, в коде нет Tuple1, Tuple2, Tuple3, Tuple39999?!
                  Ответить
                • Настоящий взрыв можно получить, если параметров несколько:

                  function test<P, I, T, U, X>(p: P, i: I, t: T, u: U, x: X)
                  Ответить
                  • И как ты сделаешь вложенные циклы по типам?
                    Ответить

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