ЙажаСценарий / Говнокод #27957 Ссылка на оригинал

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
  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 ASD_77, (Updated )

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

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

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

Семь раз отмерь — один отрежь, guest!

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


    8