1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
/*
KaiScript is turing complete. Use the "?" function to branch execution.
Only the branch matching the condition will be evaluated.
*/
import { createFn } from "../src";
const myBranchingFn = createFn<[boolean]>()("fn(b, ?(b, 1, 0))");
// const result: 1
const result = myBranchingFn(true);
// This is very powerful! For example, if you're bad at addition, KaiScript can check your work
const isAdditionCorrect = createFn<[m: number, n: number, expected: number]>()(
`fn(m,n,e, ?(eq(add(m, n), e), "correct", "incorrect"))`
);
// const badAddition: "incorrect"
const badAddition = isAdditionCorrect(5, 10, 2);
console.log(badAddition);
// const goodAddition: "correct"
const goodAddition = isAdditionCorrect(5, 10, 15);
console.log(goodAddition);
|