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

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
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
export type Maybe<T> = null | undefined | T;

export interface Path {
    readonly prev: Path | undefined;
    readonly key: string | number;
    readonly typename: string | undefined;
}

/**
 * Given a Path and a key, return a new Path containing the new key.
 */
export function addPath(
    prev: Readonly<Path> | undefined,
    key: string | number,
    typename: string | undefined,
): Path {
    return { prev, key, typename };
}

/**
 * Given a Path, return an Array of the path keys.
 */
export function pathToArray(
    path: Maybe<Readonly<Path>>,
): Array<string | number> {
    let curr = path;
    let flattened = [];
    while (curr) {
        flattened.push(curr.key);
        curr = curr.prev;
    }
    //flattened.reverse();
    return flattened;
}

function main() {
    let pathArray = pathToArray({
        key: "path",
        prev: undefined,
        typename: undefined,
    });
    for (let x of pathArray) {
        print(x);
    }
}

последний коммит позволяет скомпилить и выполнить данный код. это невиданный прогресс в компиляторе :)

и уже традиционный вопрос ... а ты там можешь наговнокодить на С/C++?

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

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

  • произошла чудовищная ошибка, но компилить надо этот код

    export type Maybe<T> = null | undefined | T;
    
    export interface Path {
        readonly prev: Path | undefined;
        readonly key: string | number;
        readonly typename: string | undefined;
    }
    
    /**
     * Given a Path and a key, return a new Path containing the new key.
     */
    export function addPath(
        prev: Readonly<Path> | undefined,
        key: string | number,
        typename: string | undefined,
    ): Path {
        return { prev, key, typename };
    }
    
    /**
     * Given a Path, return an Array of the path keys.
     */
    export function pathToArray(
        path: Maybe<Readonly<Path>>,
    ): Array<string | number> {
        let curr = path;
        let flattened = <typeof curr.key[]>[];
        while (curr) {
            flattened.push(curr.key);
            curr = curr.prev;
        }
        //flattened.reverse();
        return flattened;
    }
    
    function main() {
        let pathArray = pathToArray({
            key: "path",
            prev: undefined,
            typename: undefined,
        });
        for (let x of pathArray) {
            if (typeof x == "string") {
                assert(x == "path");
            }
    
            print(x);
        }
    
        print("done.");
    }
    Ответить
  • "Пациент к врачу заходит и жалуется: Доктор, у меня болезнь меня все игнорируют Все понятно Следующий!"
    Ответить

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

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

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


    8