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

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    // @strict: true
    // @lib: es2020
    // @declaration: true
    type BadFlatArray<Arr, Depth extends number> = {
        obj: {
            "done": Arr,
            "recur": Arr extends ReadonlyArray<infer InnerArr>
            ? BadFlatArray<InnerArr, [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][Depth]>
            : Arr
        }[Depth extends -1 ? "done" : "recur"]
    }["obj"];
    
    declare function flat<A, D extends number = 1>(
        arr: A,
        depth?: D
    ): BadFlatArray<A, D>[]
    
    function foo<T>(arr: T[], depth: number) {
        return flat(arr, depth);
    }
    
    function main() {
        foo<number>([1.0, 2.0], 2);
    }

    спорим вы нихрена не поняли что это такое?

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

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

    • спорим вы нихрена не поняли что это такое?
      Ответить
    • Боже, какая убогая пародия на зависимые типы, эстетически этот код напоминает вымученный C++ в старые недобрые шаблоноёбские времена: СмОтРиТе мЫ тОжЕ уМеЕм в ЛяМбДы. Именно поэтому я за Coq.
      Ответить
    • "extends -1"
      Оставьте единичку в покое, не надо её растягивать.
      Ответить
      • Его единичка была разработана настолько, что она без труда могла вместить в себя матрицу из гиперкомплексных чисел.
        Ответить

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