unsuspected-hangeul
Version:
함수형 난해한 언어 '평범한 한글'의 명세와 구현체입니다. 평범한 한글 문장으로 보이는 프로그램을 짜보세요!
22 lines (21 loc) • 1.4 kB
TypeScript
/** Useful utilities **/
import * as AS from './abstractSyntax';
export declare function isLiteralExpr(expr: AS.Value): expr is AS.ExprV & {
expr: AS.Literal;
};
export declare function extractValue<T>(arg: {
value: T;
}): T;
export declare function getLength(arg: {
length: number;
} | ArrayBuffer): number;
export declare function joinArrayBuffer(bufs: ArrayBuffer[]): ArrayBuffer;
export declare function recursiveMap(item: AS.Value, fn: (value: AS.Value) => AS.StrictValue): AS.StrictValue;
export declare function allEqual<T>(arr: T[]): boolean;
export declare function isType<T extends AS.StrictValueType>(argv: AS.StrictValue[], desiredTypes: readonly T[]): argv is InstanceType<T>[];
export declare function checkType<T extends AS.StrictValueType>(metadata: AS.Metadata, argv: AS.StrictValue[], desiredTypes: readonly T[]): InstanceType<T>[];
export declare function checkArity<T>(metadata: AS.Metadata, argv: T[], desiredArities: number | number[]): void;
export declare function checkMinArity<T>(metadata: AS.Metadata, argv: T[], minimumArity: number): void;
export declare function checkMaxArity<T>(metadata: AS.Metadata, argv: T[], maximumArity: number): void;
export declare function matchDefaults<T>(metadata: AS.Metadata, argv: T[], arity: number, defaults?: T[]): T[];
export declare function josa(content: string, particleBatchim: string, particleNoBatchim: string): string;