summaryrefslogtreecommitdiff
path: root/src/scenes
diff options
context:
space:
mode:
Diffstat (limited to 'src/scenes')
-rw-r--r--src/scenes/index.ts14
-rw-r--r--src/scenes/pure_functions.tsx55
2 files changed, 46 insertions, 23 deletions
diff --git a/src/scenes/index.ts b/src/scenes/index.ts
index 8544e23..1b467c0 100644
--- a/src/scenes/index.ts
+++ b/src/scenes/index.ts
@@ -8,12 +8,12 @@ import hungry_partner from "./hungry_partner?scene";
import pure_functions from "./pure_functions?scene";
export const scenes = [
- title,
- me,
- partone,
- flirtingwithfunctions,
- doctor,
- first_box,
- hungry_partner,
+ //title,
+ //me,
+ //partone,
+ //flirtingwithfunctions,
+ //doctor,
+ //first_box,
+ //hungry_partner,
pure_functions,
];
diff --git a/src/scenes/pure_functions.tsx b/src/scenes/pure_functions.tsx
index c7e1f35..af1cc4f 100644
--- a/src/scenes/pure_functions.tsx
+++ b/src/scenes/pure_functions.tsx
@@ -1,4 +1,4 @@
-import { Node, Rect, Txt, makeScene2D } from "@motion-canvas/2d";
+import { Rect, Txt, makeScene2D } from "@motion-canvas/2d";
import {
Direction,
all,
@@ -10,11 +10,10 @@ import {
import { FunctionBox } from "../components/function_box";
import { theme } from "../theme";
-const pureFunction = `const pureFib = (n: number) => {
- if (n <= 1) {
- retun 1;
- }
- return fib(n - 1) + fib(n - 2);
+const pureFib = `const pureFib = (n: number) => {
+ if (n <= 1)
+ return 1;
+ return pureFib(n - 1) + pureFib(n - 2);
};
pureFib;`;
@@ -27,7 +26,8 @@ const impureFib = (n: number) => {
impureFib;`;
const impureFactFunction = `const impureFact = (n: number): number => {
while (cache.length <= n)
- cache.push(cache.length * cache[cache.length - 1]);
+ cache.push(cache.length *
+ cache[cache.length - 1]);
return cache[n];
};
impureFact;`;
@@ -66,7 +66,7 @@ export default makeScene2D(function* (view) {
arity={1}
idlingText=""
workingText=""
- source={pureFunction}
+ source={pureFib}
ref={pureFunctionBox}
/>
</Rect>
@@ -81,24 +81,47 @@ export default makeScene2D(function* (view) {
impureFactFunctionBox().showCode(0.5),
);
- yield* impureFibFunctionBox().setInputs([{ val: 5 }], 0.05);
+ yield* impureFibFunctionBox().setInputs([{ val: 5 }], 0.2);
yield* beginSlide("Show FibImpure(5)");
- yield* impureFibFunctionBox().propogateInput(0.05);
- yield* impureFibFunctionBox().propogateOutput(0.05);
+ yield* impureFibFunctionBox().propogateInput(0.2);
+ yield* impureFibFunctionBox().propogateOutput(0.2);
yield* beginSlide("FibImpure(5)");
- yield* impureFactFunctionBox().setInputs([{ val: 5 }], 0.05);
+ yield* impureFactFunctionBox().setInputs([{ val: 5 }], 0.2);
yield* beginSlide("Show FactImpure(5)");
- yield* impureFactFunctionBox().propogateInput(0.05);
- yield* impureFactFunctionBox().propogateOutput(0.05);
+ yield* impureFactFunctionBox().propogateInput(0.2);
+ yield* impureFactFunctionBox().propogateOutput(0.2);
yield* beginSlide("FactImpure(5)");
yield* impureFactFunctionBox().reset(0.15);
yield* impureFactFunctionBox().setInputs([{ val: 5 }], 0.15);
yield* beginSlide("FactImpure(5) Add 5");
- yield* impureFactFunctionBox().propogateInput(0.05);
- yield* impureFactFunctionBox().propogateOutput(0.05);
+ yield* impureFactFunctionBox().propogateInput(0.2);
+ yield* impureFactFunctionBox().propogateOutput(0.2);
yield* beginSlide("FactImpure(5) Correct");
+
+ yield* all(
+ impureFibFunctionBox().reset(0.5),
+ impureFactFunctionBox().reset(0.5),
+ impureFibFunctionBox().hideCode(0.5),
+ pureFunctionBox().showCode(0.5),
+ );
+
+ yield* beginSlide("Show Fib Pure");
+ yield* pureFunctionBox().reset(0.15);
+ yield* all(
+ pureFunctionBox().setInputs([{ val: 5 }], 0.15),
+ impureFactFunctionBox().setInputs([{ val: 5 }], 0.15),
+ );
+
+ yield* beginSlide("Set Inputs");
+
+ yield* pureFunctionBox().propogateInput(0.2);
+ yield* pureFunctionBox().propogateOutput(0.2);
+ yield* impureFactFunctionBox().propogateInput(0.2);
+ yield* impureFactFunctionBox().propogateOutput(0.2);
+
+ yield* beginSlide("Compute Fib");
});