From c1bdee9b38dffafe5d1f7914ae1659dc907222ba Mon Sep 17 00:00:00 2001
From: Shu Uesugi
-
+//
+// ただ、
+//
+// では約束通り、
+//
+//
+// わかりました。まず、
+//
+//
何だか複雑そうな弁当箱だなあ…
+//
+//
+// それが今回の問題です!
+//
+// でも、まだ何の情報もないから…
+//
+// その通りです。まだ説明することがありますから。では、続けますね! +//
+// > +// ) +// } +// ]} +// /> +// > +// ) +// }, +// { +// title: ( +// <> +//
+// 先ほどの弁当箱は、
+//
+//
+// 背景に
+// そうですね。背景にある{' '}
+//
+// その
+//
では、説明しますね!
+// > +// ) +// } +// ]} +// /> +// > +// ) +// }, +// { +// type: 'summary', +// title: ( +// <> +//
+//
+// まず、
+//
この合体した弁当箱を、
+//
+// すると、
+//
+// これが
+//
+// 一言で言うと、
+//
うーん、具体例で説明してくれる?
+// > +// ) +// } +// ]} +// /> +// > +// ) +// }, +// { +// title: ( +// <> +//
+// では、具体例で説明しましょう!
+//
+// 前回の復習ですが、この弁当箱は、ぼくが計算箱に変換すると{' '}
+//
+// では上の弁当箱を、先ほどの
+//
+// では、この弁当箱を「
+//
+//
そうなんです!つまり、
+//
+// を押すと、
+//
+// つまりざっくり言うと、
+//
+// 続いて、
+//
+// この弁当箱は、ぼくが計算箱に変換すると{' '}
+//
+// この弁当箱も、
+//
+// こちらを「
+//
+//
そうなんです!まとめると、以下のようになります。
+// > +// ) +// } +// ]} +// /> + +//
+// ざっくり言うと、今度は{' '}
+//
まとめると、
+//
+// を押すと、
+//
+// では、ここで問題です。
+//
+// 先ほどのような、
+//
+// つまり、
+//
+//
+//
+// この問題こそが、以前から話していた「難しい問題」だ。
+//
+// うーん…
+//
大丈夫、安心してください!
+//
+//
+// わかった。じゃあとりあえず、
+//
+//
+// この弁当箱に、
+//
+// そうですね。そして、
+//
+// つまり、以下のように
+// 結果が
+// では、
+//
+// これを先ほどの弁当箱と組み合わせて、
+//
+// すなわち、
+//
では、上の弁当箱を実行したらどうなるか見ていこう!
+// > +// ) +// } +// ]} +// /> +// > +// ), +// footer: { +// content: ( +// <> +//
+//
+// 復習したい場合は、↓の「初級編の内容を復習する」を押してください。 +//
+// > +// ) +// }} +// /> +// > +// ) +// } +// }, +// { +// title: <>早送りしてみよう>, +// content: ( +// <> +//つまり、最終的に以下のようになりました!
+// > +// ) +// } +// ]} +// /> +//
+// 実行を終えたので、
+//
+// 残念ながら、
+//
+// 理由は、
+//
+//
+// ダメか…
+//
+// つまり、実行しても{' '}
+//
+// だから、
+//
+// 残念…やっぱり、適当に{' '}
+//
+// 問題の意味が分かったでしょうか?では、もう一度聞きますね。 +//
+//
+//
+//
+// 繰り返しますが、先ほど適当に料理を入れた以下の弁当箱は、不正解でした! +//
+// > +// ) +// } +// ]} +// /> +//+// うーん…問題の意味は分かったけど、答え方が分からない! +//
+// > +// ) +// } +// ]} +// /> +// > +// ) +// }, +// { +// title: <>答えは次のページに>, +// content: ( +// <> +//+// せっかく計算箱を返してもらえるチャンスなのに、問題が難しくて村人は苦戦しているようですね。 +//
+//
+// しかし、
+//
つまり、
Because the result is
だから、
Here’s how we’re going to replace it:
以下のように置き換えてみるよ。
+ 次に、
+
+ それぞれの
合体させると、次のようになります。
+ > + ) + } + ]} + />何だか複雑そうな弁当箱だなあ…
-
-
- それが今回の問題です!
-
- でも、まだ何の情報もないから…
-
- その通りです。まだ説明することがありますから。では、続けますね! -
+それでは、ここで質問です!
> ) } diff --git a/src/lib/runners/stda.json b/src/lib/runners/stda.json new file mode 100644 index 000000000..4e0bb6eed --- /dev/null +++ b/src/lib/runners/stda.json @@ -0,0 +1,201 @@ +{ + "expressionContainers": [ + { + "expression": { + "arg": { + "arg": { + "name": "d", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "name": "e", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "name": "e", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "type": "function", + "maxNestedFunctionDepth": 1 + }, + "type": "function", + "maxNestedFunctionDepth": 2 + }, + "func": { + "arg": { + "name": "questionFoodGrey", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "name": "questionFoodGrey", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "name": "questionFoodGrey", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "arg": { + "name": "questionFoodGrey", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1, + 3 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "func": { + "arg": { + "name": "questionFoodGrey", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 2 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "func": { + "name": "questionFoodGrey", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 2, + 3 + ], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "state": "default", + "type": "call", + "priority": 2, + "maxNestedFunctionDepth": 0 + }, + "state": "default", + "type": "call", + "priority": 3, + "maxNestedFunctionDepth": 0 + }, + "func": { + "name": "questionFoodGrey", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "state": "default", + "type": "call", + "priority": 1, + "maxNestedFunctionDepth": 0 + }, + "type": "function", + "maxNestedFunctionDepth": 1 + }, + "type": "function", + "maxNestedFunctionDepth": 2 + }, + "type": "function", + "maxNestedFunctionDepth": 3 + }, + "state": "default", + "type": "call", + "priority": 1, + "maxNestedFunctionDepth": 3 + }, + "numLeafNodes": 5, + "containerState": "ready", + "previouslyChangedExpressionState": "default" + } + ], + "speed": 1, + "hideControls": true, + "explanationsVisibility": "hidden", + "hidePriorities": false, + "hidePlayButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": false, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "highlightFunctions": false, + "showBottomProgressBar": false +} From c3bbfea4336c56b6baded1c5684e8b53b407deab Mon Sep 17 00:00:00 2001 From: Shu Uesugi
+ 先ほどの弁当箱は、
+
+ …を行うと、
+
+ もともとの弁当箱が
+ 先ほどの
それでは、ここで問題です!
+
+
+ この問題こそが、以前から話していた「難しい問題」だ。
+
+ うーん…
+
大丈夫、安心してください!
+
+
+ わかった。じゃあとりあえず、
+
+
では、問題を復習しましょう。上の弁当箱を、
+したときに、結果が…
+というわけです。
+ > + ) + } + ]} + /> +
+ では、
+
- では、
-
+
+ 復習したい場合は、↓の「初級編の内容を復習する」を押してください。 +
+ > + ) + }} + /> + > + ) + } + }, + { + title: <>早送りしてみよう>, + content: ( + <> +つまり、最終的に以下のようになりました!
+ > + ) + } + ]} + /> +
- 先ほどの弁当箱は、
-
-
- 背景に
- そうですね。背景にある{' '}
-
- その
-
では、説明しますね!
- > - ) - } - ]} - /> - > - ) - }, - { - type: 'summary', - title: ( - <> -
-
- まず、
-
この合体した弁当箱を、
-
- すると、
-
- これが
-
- 一言で言うと、
-
うーん、具体例で説明してくれる?
- > - ) - } - ]} - /> - > - ) - }, - { - title: ( - <> -
- では、具体例で説明しましょう!
-
- 前回の復習ですが、この弁当箱は、ぼくが計算箱に変換すると{' '}
-
- では上の弁当箱を、先ほどの
-
- では、この弁当箱を「
-
-
そうなんです!つまり、
-
- を押すと、
-
- つまりざっくり言うと、
-
- 続いて、
-
- この弁当箱は、ぼくが計算箱に変換すると{' '}
-
- この弁当箱も、
-
- こちらを「
-
-
そうなんです!まとめると、以下のようになります。
- > - ) - } - ]} - /> - -
- ざっくり言うと、今度は{' '}
-
まとめると、
-
- を押すと、
-
- では、ここで問題です。
-
- 先ほどのような、
-
- つまり、
-
-
-
- この問題こそが、以前から話していた「難しい問題」だ。
-
- うーん…
-
大丈夫、安心してください!
-
-
- わかった。じゃあとりあえず、
-
-
- この弁当箱に、
-
- そうですね。そして、
-
- つまり、以下のように
- 結果が
- では、
-
- これを先ほどの弁当箱と組み合わせて、
-
- すなわち、
-
では、上の弁当箱を実行したらどうなるか見ていこう!
- > - ) - } - ]} - /> - > - ), - footer: { - content: ( - <> -
-
- 復習したい場合は、↓の「初級編の内容を復習する」を押してください。 -
- > - ) - }} - /> - > - ) - } - }, - { - title: <>早送りしてみよう>, - content: ( - <> -つまり、最終的に以下のようになりました!
- > - ) - } - ]} - /> -
つまり、実行しても{' '}
-
- だから、
-
- 問題の意味が分かったでしょうか?では、もう一度聞きますね。 -
+それでは、もう一度聞きますね!
-
- 前回の復習ですが、この弁当箱は、ぼくが計算箱に変換すると{' '}
-
- それぞれの
- 先ほどの
- 合体させると、
Suppose that you{' '}
-
- This is the very difficult question I’ve been talking
- about.
+ This is the
- この問題こそが、以前から話していた「難しい問題」だ。
+ この問題こそが、以前から話していた「
+ ラムダ村の村人たちは、前回の問題に四苦八苦していました。 Also, there’s one more thing I can do.
- I can{' '}
-
-
-
- It became
-
-
-
-
- I see, that’s why it became Yes. By pressing this button: You can do the following steps at once:
- I see. So you can do two steps (
- Yes. Let’s do a
- Suppose that you{' '}
-
-
-
- Let’s{' '}
-
- We’re left with Good job!
-
- So, if you{' '}
-
- This can be converted to
- That’s why it becomes
- さらにぼくは、
-
-
- ためしに、
-
-
- では、理由を説明しますね。まず、もともとの弁当箱を実行するとどうなるか、
-
- つまり、もともとの弁当箱を
-
- このような、 というふたつのステップを、 …を押すことで、一度に行うことができるのです。
- なるほど、「
- では、ここで最後に こちらの弁当箱を…
- 「
-
-
- では、
-
- やった! その通りです!
- 確認のために、もともとの弁当箱を
-
- つまり、もともとの弁当箱を
-
-
- というわけで、もともとの弁当箱を
-
+ どんな料理を入れると、
+
+ したとき、結果が
- どんな料理を入れると、
-
- したとき、結果が
- どんな料理を入れると、
-
- したとき、結果が
-
- >
- )
- }
- ]}
- />
-
-
-
- 計算箱に変換する
- >
- }
- />
-
-
-
- すると
- 先ほどの弁当箱は、
-
- …を行うと、
-
実は、先ほどの弁当箱は、
+
- 端的に言うと、
-
実行することで、
+というわけですね。
> ) } @@ -416,8 +421,9 @@ export default () => ( ]} description={ <> -
では、問題を復習しましょう。上の弁当箱を、
-したときに、結果が…
++ では、問題を復習しましょう。上の弁当箱を実行したときに、結果が… +
というわけです。
@@ -558,17 +569,13 @@ export default () => ( } ]} /> -
- その通りです。上の
-
その通りです。
-
こちらが、先ほどの弁当箱だけど…
- > - ) - } - ]} - /> -
- この弁当箱に、以下のように
-
ふむふむ…何やら複雑になったなあ。
-で、これがどうしたっていうの?
- > - ) - } - ]} - /> - > - ) - }, - { - title: <>実行してみると>, - content: ( - <> +
- では、この弁当箱を
-
- (
-
-
- 結果は
- 早送りしてないから、なぜ
- うん、早送りは次のページでやるから、今はとりあえず「
-
これを弁当箱で再現する方法が分かったんだ!
> ) }, { - type: 'thinking', + type: 'surprised', children: ( <> -- そうか、次のページでまた詳しく説明してくれるんだね。了解だよ。 -
+なんと!ぜひ教えてくれ!
> ) } @@ -1119,7 +1068,7 @@ export default () => ( ) }, { - title: <>ふたつの数字の足し算ができる?>, + title: <>先ほどの弁当箱にいろいろ追加してみる>, content: ( <>
- それよりも重要なのは、
-
確かにそうだな…
- > - ) - }, { type: 'saya', children: ( <>
- ということは、この弁当箱は
- つまり…
-
ふむふむ…何やら複雑になったなあ。
+で、これがどうしたっていうの?
> ) - } - ]} - /> - > - ), - footer: { - content: ( - <> -
-
待てよ、そういえば…
- 以下のように計算箱の「
-
つまり、以下のようになるんだよ。
> ) } ]} /> -えー、まさか!本当なのかい?
- ということは…サヤちゃんの弁当箱は、上の「
+ もし本当だとしたら…これで「
- もしそうなら…「
-
実行して確かめてみないと分からないなあ…
> ) - } - ]} - /> -- では、本当に再現できたのかどうか、次のページで確かめてみるね!先に進むよ! -
+うん、では次のページで実行して確かめてみよう!
> ) } @@ -1334,20 +1199,7 @@ export default () => ( />
-
- サヤちゃんの弁当箱は、前回
+ サヤちゃんが言うには、上の弁当箱は、「
+
- つまり、「
+
今回は、本当にこの弁当箱が「
そうすることで、
- Yes!{' '}
-
- Yes!
-
-
-
- つまり、
- ということは、サヤちゃんの弁当箱は…
- ということですね。
- 合体したものを
-
- 上の
-
まとめると、
diff --git a/src/lib/runners/cawl.json b/src/lib/runners/cawl.json
new file mode 100644
index 000000000..14d139fe0
--- /dev/null
+++ b/src/lib/runners/cawl.json
@@ -0,0 +1,37 @@
+{
+ "expressionContainers": [
+ {
+ "expression": {
+ "name": "shorthandNumber",
+ "highlightType": "default",
+ "topLeftBadgeType": "none",
+ "bottomRightBadgeType": "none",
+ "type": "variable",
+ "argPriorityAgg": [],
+ "funcPriorityAgg": [],
+ "emphasizePriority": false,
+ "bound": true,
+ "shorthandNumber": 2,
+ "shorthandNumberAfterConvert": "number",
+ "maxNestedFunctionDepth": 0
+ },
+ "numLeafNodes": 2,
+ "containerState": "done",
+ "previouslyChangedExpressionState": "default"
+ }
+ ],
+ "speed": 1,
+ "hideControls": true,
+ "explanationsVisibility": "hidden",
+ "hidePriorities": false,
+ "hidePlayButton": false,
+ "hideBottomRightBadges": false,
+ "skipToTheEnd": false,
+ "hideFuncUnboundBadgeOnExplanation": false,
+ "highlightOverridesCallArgAndFuncUnboundOnly": false,
+ "bottomRightBadgeOverrides": {},
+ "highlightOverrides": {},
+ "highlightOverrideActiveAfterStart": false,
+ "highlightFunctions": false,
+ "showBottomProgressBar": false
+}
diff --git a/src/lib/runners/fhkl.json b/src/lib/runners/fhkl.json
index 08817cfad..dd39bd903 100644
--- a/src/lib/runners/fhkl.json
+++ b/src/lib/runners/fhkl.json
@@ -3,114 +3,20 @@
{
"expression": {
"arg": {
- "arg": {
- "name": "g",
- "highlightType": "default",
- "topLeftBadgeType": "none",
- "bottomRightBadgeType": "none",
- "type": "variable",
- "argPriorityAgg": [
- 1
- ],
- "funcPriorityAgg": [],
- "emphasizePriority": false,
- "bound": false,
- "maxNestedFunctionDepth": 0
- },
- "body": {
- "arg": {
- "name": "h",
- "highlightType": "default",
- "topLeftBadgeType": "none",
- "bottomRightBadgeType": "none",
- "type": "variable",
- "argPriorityAgg": [],
- "funcPriorityAgg": [],
- "emphasizePriority": false,
- "bound": false,
- "maxNestedFunctionDepth": 0
- },
- "body": {
- "arg": {
- "arg": {
- "arg": {
- "name": "h",
- "highlightType": "default",
- "topLeftBadgeType": "none",
- "bottomRightBadgeType": "none",
- "type": "variable",
- "argPriorityAgg": [
- 1,
- 2,
- 3
- ],
- "funcPriorityAgg": [],
- "emphasizePriority": false,
- "bound": true,
- "maxNestedFunctionDepth": 0
- },
- "func": {
- "name": "g",
- "highlightType": "default",
- "topLeftBadgeType": "none",
- "bottomRightBadgeType": "none",
- "type": "variable",
- "argPriorityAgg": [],
- "funcPriorityAgg": [
- 3
- ],
- "emphasizePriority": false,
- "bound": true,
- "maxNestedFunctionDepth": 0
- },
- "state": "default",
- "type": "call",
- "priority": 3,
- "maxNestedFunctionDepth": 0
- },
- "func": {
- "name": "g",
- "highlightType": "default",
- "topLeftBadgeType": "none",
- "bottomRightBadgeType": "none",
- "type": "variable",
- "argPriorityAgg": [],
- "funcPriorityAgg": [
- 2
- ],
- "emphasizePriority": false,
- "bound": true,
- "maxNestedFunctionDepth": 0
- },
- "state": "default",
- "type": "call",
- "priority": 2,
- "maxNestedFunctionDepth": 0
- },
- "func": {
- "name": "g",
- "highlightType": "default",
- "topLeftBadgeType": "none",
- "bottomRightBadgeType": "none",
- "type": "variable",
- "argPriorityAgg": [],
- "funcPriorityAgg": [
- 1
- ],
- "emphasizePriority": false,
- "bound": true,
- "maxNestedFunctionDepth": 0
- },
- "state": "default",
- "type": "call",
- "priority": 1,
- "maxNestedFunctionDepth": 0
- },
- "type": "function",
- "maxNestedFunctionDepth": 1
- },
- "type": "function",
- "maxNestedFunctionDepth": 2
+ "name": "shorthandNumber",
+ "highlightType": "default",
+ "topLeftBadgeType": "none",
+ "bottomRightBadgeType": "none",
+ "type": "variable",
+ "argPriorityAgg": [
+ 1
+ ],
+ "funcPriorityAgg": [],
+ "emphasizePriority": false,
+ "bound": true,
+ "shorthandNumber": 3,
+ "shorthandNumberAfterConvert": "number",
+ "maxNestedFunctionDepth": 0
},
"func": {
"arg": {
@@ -343,6 +249,7 @@
"maxNestedFunctionDepth": 4
},
"type": "function",
+ "meta": "minusOneEffect",
"maxNestedFunctionDepth": 5
},
"state": "default",
@@ -350,42 +257,23 @@
"priority": 1,
"maxNestedFunctionDepth": 5
},
- "numLeafNodes": 10,
+ "numLeafNodes": 8,
"containerState": "ready",
"previouslyChangedExpressionState": "default"
- },
- {
- "expression": {
- "name": "shorthandNumber",
- "highlightType": "default",
- "topLeftBadgeType": "none",
- "bottomRightBadgeType": "none",
- "type": "variable",
- "argPriorityAgg": [],
- "funcPriorityAgg": [],
- "emphasizePriority": false,
- "bound": true,
- "shorthandNumber": 2,
- "maxNestedFunctionDepth": 0
- },
- "numLeafNodes": 1,
- "containerState": "done",
- "previouslyChangedExpressionState": "default"
}
],
"speed": 1,
- "hideControls": false,
- "explanationsVisibility": "hiddenInitialPausedOnly",
+ "hideControls": true,
+ "explanationsVisibility": "hidden",
"hidePriorities": false,
"hidePlayButton": false,
"hideBottomRightBadges": false,
- "skipToTheEnd": true,
+ "skipToTheEnd": false,
"hideFuncUnboundBadgeOnExplanation": false,
"highlightOverridesCallArgAndFuncUnboundOnly": false,
"bottomRightBadgeOverrides": {},
"highlightOverrides": {},
"highlightOverrideActiveAfterStart": false,
"highlightFunctions": false,
- "convert": "toMathBoxPlay",
- "showBottomProgressBar": true
+ "showBottomProgressBar": false
}
diff --git a/src/lib/runners/nbck.json b/src/lib/runners/nbck.json
new file mode 100644
index 000000000..7bad4411e
--- /dev/null
+++ b/src/lib/runners/nbck.json
@@ -0,0 +1,37 @@
+{
+ "expressionContainers": [
+ {
+ "expression": {
+ "name": "shorthandNumber",
+ "highlightType": "default",
+ "topLeftBadgeType": "none",
+ "bottomRightBadgeType": "none",
+ "type": "variable",
+ "argPriorityAgg": [],
+ "funcPriorityAgg": [],
+ "emphasizePriority": false,
+ "bound": true,
+ "shorthandNumber": 0,
+ "shorthandNumberAfterConvert": "number",
+ "maxNestedFunctionDepth": 0
+ },
+ "numLeafNodes": 2,
+ "containerState": "done",
+ "previouslyChangedExpressionState": "default"
+ }
+ ],
+ "speed": 1,
+ "hideControls": true,
+ "explanationsVisibility": "hidden",
+ "hidePriorities": false,
+ "hidePlayButton": false,
+ "hideBottomRightBadges": false,
+ "skipToTheEnd": false,
+ "hideFuncUnboundBadgeOnExplanation": false,
+ "highlightOverridesCallArgAndFuncUnboundOnly": false,
+ "bottomRightBadgeOverrides": {},
+ "highlightOverrides": {},
+ "highlightOverrideActiveAfterStart": false,
+ "highlightFunctions": false,
+ "showBottomProgressBar": false
+}
From 6d34044302ebf0270ff5738e8d2ab0fdf56dab0c Mon Sep 17 00:00:00 2001
From: Shu Uesugi
…on the above lunchbox?
ここで質問です。上の弁当箱を、
- すると、
+ ここで質問です。上の弁当箱を
+
サヤはすぐ分かったよ!
Well, because it calculates
+ It should become a lunchbox that can be converted to{' '}
+
- Hmm… what’s going on? Last time, we got{' '}
- Hmm… what’s going on? Last time, it worked…
これを、前回サヤが考えた
+
>
)
}
@@ -481,13 +482,11 @@ export default () => (
- it will become
a lunchbox that can be converted to{' '}
+
+ converted to
Otherwise,
+
>
)
}
@@ -819,14 +816,10 @@ export default () => (
a lunchbox that can be converted to
+ converted to
+ converted to
Otherwise,
using a lunchbox.
-
- The final result will be
- して、結果が
それ以外なら
+
+
- すると、結果が
- して、結果が
それ以外なら
a
+ lunchbox that can be converted to{' '}
+
+
-
- すると…
+ 実行すると…
+ 変換できる弁当箱になる
+
-
- すると…
+ 実行すると…
+ 変換できる弁当箱になる
+
-
+ when you
+ that can be converted to
-
- するとどうなる?
+ 実行するとどうなる?
Here’s the lunchbox we used earlier on this page:
- > - ) - } - ]} - /> -
- I just added some items to this lunchbox. The{' '}
-
Hmm… ok, whats’s so special about this lunchbox?
- > - ) - } - ]} - /> - > - ) - }, - { - title: <>Let’s run it!>, - content: ( - <> +
- Let’s
- (
-
-
- The result is
- Because we didn’t see all the steps, I don’t know how it
- became
Yes, I will show all the steps on the next page.
-
Ok, but why is this lunchbox important?
+Reall? Please show me how!
> ) } @@ -1131,7 +1083,7 @@ export default () => ( ) }, { - title: <>It can do additions of two numbers?>, + title: <>Add more stuff to the previous lunchbox>, content: ( <>Here’s the lunchbox we used earlier on this page.
-
Hmm… that’s true…
- > - ) - }, { type: 'saya', children: ( <>
-
- So you’re saying…{' '}
-
Hmm… ok, whats’s so special about this lunchbox?
> ) - } - ]} - /> - > - ), - footer: { - content: ( - <> -
-
- If so, don’t worry! We’ll show you all the steps on the next
- page, so just continue reading!
-
It turns out that:
+Therefore, it becomes like this:
> ) } ]} /> -Wow, really?
- So, maybe{' '}
-
But does it really work?
- If so, that means we just successfully{' '}
-
Let’s dive in deeper on the next page!
+
+ Yes, let’s{' '}
+
-
- この弁当箱は、以下のように{' '}
+ この計算箱は、以下のように{' '}
先ほど登場した、複雑な部分を計算箱に置き換えた弁当箱に注目してみて!
+
+ これに変更を加えることで、「
+
ふーん、どんな問題なの?
- > - ) - }, - { - type: 'sad', - children: ( - <> -じゃあ、手短に説明するね。
-
-
- すなわち、
-
ラムダ村の村人たちは、前回の問題に四苦八苦していました。
+//だめだ…全然分からない!
+// > +// ) +// }, +// { +// type: 'sad', +// children: ( +// <> +//+// これを解かないと計算箱を返してもらえないのに…どうしよう… +//
+// > +// ) +// } +// ]} +// /> +// > +// ) +// }, +// { +// title: <>サヤちゃん現る>, +// content: ( +// <> +//
+// その時です。ラムダ村に暮らす少女の
+//
ねえねえ、みんな何してるの?
+// > +// ) +// }, +// { +// type: 'sad', +// children: ( +// <> +//
+// おお、サヤちゃんか。実は、にっくき悪魔
+// 奴が出題した問題を解かないと計算箱を返してもらえないんだけど、俺らには難しくて解けないんだよ。 +//
+// > +// ) +// }, +// { +// type: 'saya', +// children: ( +// <> +//ふーん、じゃあサヤも解くのを手伝うよ!
+// > +// ) +// }, +// { +// type: 'roll', +// children: ( +// <> +//+// 手伝ってくれるのはありがたいけど、この問題はママゴトじゃないんだよ。俺らがどれだけ頑張っても分からなかったんだ。 +//
+// > +// ) +// } +// ]} +// /> +// > +// ) +// }, +// { +// title: <>サヤちゃんの弁当箱>, +// content: ( +// <> +//
+// サヤちゃんは少し考えた後、
+//
+// ねえねえ、サヤも
+// ふむふむ…どうせ上手くいかないと思うけど、試してみるか。 +//
+//
+// 前回もやったように、
+//
+//
+// じゃあ、
+//
つまり、最終的に以下のようになりました!
+//こ、これはもしや…?
+// > +// ) +// } +// ]} +// /> +// > +// ) +// }, +// { +// title: ( +// <> +//
+// この弁当箱は、
+//
ということは、サヤちゃんの弁当箱は…
+//
+//
+// つまり、
+//
やったー!
+// > +// ) +// }, +// { +// type: 'surprised', +// children: ( +// <> +//+// そんなバカな…!俺らがどれだけ頭をひねっても分からなかったのに、サヤちゃんにいとも簡単に解かれるなんて! +//
+// > +// ) +// } +// ]} +// /> +// > +// ) +// }, +// { +// title: ( +// <> +//
+// いや、まだ分からんぞ。
+//
+// たとえば、
+//
+// じゃあ、
+//
サヤが考えた弁当箱を合体させてみるね!
+//
+// 合体したものを
+//
+// まずは実行してみるね。
+//
今回は、最後まで止まらずに早送りします!
+// > +// ) +// } +// ]} +// /> +//結果はこうなったよ!
+// > +// ) +// } +// ]} +// /> +//
+// この弁当箱は、
+//
+// つまり、
+//
わーい、わーい!
+// > +// ) +// }, +// { +// type: 'surprised', +// children: ( +// <> +//す、すごい…!
+// > +// ) +// } +// ]} +// /> +// > +// ) +// }, +// { +// title: ( +// <> +//
+// ではここで正解を言いましょう。
+//
+// だから、
+//
わーい、ミニオンさんありがとう!
+// > +// ) +// }, +// { +// type: 'dog', +// children: ( +// <> +//
+// さらに言うと、サヤちゃんが考えた弁当箱以外にも、
+//
サヤが考えた弁当箱の場合、
+//ということかな?
+// > +// ) +// } +// ]} +// /> +//+// その通りです。サヤちゃんが考えた弁当箱は、ちゃんとこの法則に当てはまっているのです。 +//
+//
+// じゃあ、たとえばこの弁当箱でも、同じ法則に沿っているから、
+//
+//
+// はい、
+//
+//
+// 実行したとき、
+//
+//
+// 結果、
+//
+// つまり、
+//
+// なるほど、やっぱりこちらの弁当箱にも
+//
+// 俺らふだん頭を使っていないから、情報量が多すぎて疲れてしまった… +//
+//ちょっとひと休みしてもらえないか?
+// > +// ) +// }, +// { +// type: 'dog', +// children: ( +// <> +//いいですよ、ひと休みしましょう!
+//
+// ちなみに現時点で、
+//
+// いい機会なので、少し立ち止まって振り返ってみましょう。 +//
+// > +// ) +// } +// ]} +// /> +//
+// まずこちらをご覧ください。これは、「
+//
+// これまで学んだことを一言でまとめると、上の計算箱にあるような「
+//
+// 「
+//
+//
+//
+// つまり、先ほど登場した
+//
+// これが、「
もちろん、もっと複雑な計算箱も弁当箱で再現できます。
+//
+// たとえば、初級その1に登場したこちらの計算箱をご覧ください。
+//
+// これを弁当箱で再現するには、
+//
+// 上の弁当箱は実行に時間がかかるので、ここでは早送りはしませんが、
+//
+// まとめると、
+//
+// ここで疑問なのですが、初級で説明した通り、計算箱には「
+//
+//
+//
ミニオン、ひとつ愚痴を聞いてもらえるかい?
+// > +// ) +// }, +// { +// type: 'dog', +// children: ( +// <> +//はい、どうしました?
+// > +// ) +// }, +// { +// type: 'sad', +// children: ( +// <> +//+// さっきの問題、難しすぎやしないかい?普通は、サヤちゃんみたいに答えをとっさに思いつかないよ! +//
+//
+//
+//
え、そうなの?
+// > +// ) +// }, +// { +// type: 'dog', +// children: ( +// <> +//はい。先ほどの問題は超難問でしたから。
+//
+//
そっか…気が楽になったよ。ありがとう!
+// > +// ) +// }, +// { +// type: 'dog', +// children: ( +// <> +//いえいえ。それでは、そろそろ話を戻しましょう!
+// > +// ) +// } +// ]} +// /> +//+// 悪魔による難しい問題に見事答えられたことで、村人たちは大喜びでした。 +//
+//+// やった!サヤちゃんのおかげで問題に答えられたぞ!これで計算箱を返してもらえる! +//
+// > +// ) +// } +// ]} +// /> +//しかし、当のサヤちゃんには何か腑に落ちない点があるようです。
+//
+// ミニオンさん、
+//
はい、「おかしなこと」とは何ですか?
+// > +// ) +// } +// ]} +// /> +//
+// サヤちゃんが気づいた、「
+//
- 前回もやったように、
-
-
この弁当箱は、
-
ということは、サヤちゃんの弁当箱は…
-
-
- つまり、
-
ふーん、じゃあサヤも解くのを手伝うよ!
+
+ ふーん、
+
こ、これはもしや…?
> ) - } - ]} - /> - > - ) - }, - { - title: ( - <> -とにかく、これで計算箱を返してもらえるぞ!
+ > + ) + }, + { + type: 'dog', + children: ( + <> +
+ そうですね。しかしその前に、
+
掘り下げたいことだって?
+ > + ) + }, + { + type: 'dog', + children: ( + <> +
+ はい。まず、ここまでをまとめると、下のように{' '}
+
+
+ つまり、
というわけですね。
+ > + ) + } + ]} + /> +
+ では、ここで疑問です。
結果はどうなるでしょう?
+ > + ) + } + ]} + /> + > + ) + }, { title: ( <> From 42ebf751621fc2ab055c1ec9454261c68be022dc Mon Sep 17 00:00:00 2001 From: Shu Uesugi
- では、ここで疑問です。
結果はどうなるでしょう?
+
+
うーん、分からないなあ…
+
+ 先ほどは、
+
+ では、
+
本稿では、以下のようなパズルを解きながらコンピュータサイエンスの題材を学んでいきます。以下のパズルがどういう仕組みかは次のページで説明しますが、とりあえず
上記のように、 diff --git a/src/contents/1.en.tsx b/src/contents/1.en.tsx index d6c77bdf1..347ae89a9 100644 --- a/src/contents/1.en.tsx +++ b/src/contents/1.en.tsx @@ -119,7 +119,7 @@ export default () => ( />
Next, we’ll talk about how we can{' '}
-
Each mathbox has a{' '}
それぞれの計算箱には
- Let’s
じゃあ、
-
これを
-
- Yes, let’s{' '}
-
ここで質問です。上の弁当箱を
-
あとは、これを
-
では、これを
-
-
上の弁当箱は、
-
- If you
- If you
そのためにラムダ村の村人は、以下のような計算箱を
-
後は
-
For now, let’s talk about how we can{' '}
-
- We can
@@ -793,7 +793,7 @@ export default () => (
diff --git a/src/contents/3.jp.tsx b/src/contents/3.jp.tsx
index 67b17c0d3..c9e561a6c 100644
--- a/src/contents/3.jp.tsx
+++ b/src/contents/3.jp.tsx
@@ -402,7 +402,7 @@ export default () => (
とりあえず今は、
-
これを
-
-
In this case, when you{' '}
-
Let’s first see what happens when you{' '}
-
Let’s first{' '}
-
これを
-
じゃあ、
-
つまり、最終的に以下のようになりました!
では、
-
もちろん、もっと複雑な計算箱も弁当箱で再現できます。
たとえば、初級その1に登場したこちらの計算箱をご覧ください。
-
// じゃあ、
-//
つまり、最終的に以下のようになりました!
//もちろん、もっと複雑な計算箱も弁当箱で再現できます。
//
// たとえば、初級その1に登場したこちらの計算箱をご覧ください。
-//
じゃあ、
-
+
-
-
Let’s try running it!{' '}
-
Let’s try running it!{' '}
-
Let’s run it!{' '}
-
入れてみると次のようになるよ。
-
入れてみると次のようになるよ。
-
というわけで、
-
Let’s run it!{' '}
-
-
-
というわけで、
-
では、続きを見てみよう!
-
再度、
では、
-
上の弁当箱は、
diff --git a/src/contents/4.en.tsx b/src/contents/4.en.tsx index 328c4c4e1..e3a162009 100644 --- a/src/contents/4.en.tsx +++ b/src/contents/4.en.tsx @@ -958,12 +958,12 @@ export default () => (
Here’s the previous example with
Here’s the previous example with
Here’s the previous example with
Here’s the previous example with
- では、最初から最後まで
-
こちらは、上にひとつの料理がある例です。
-
こちらは、上にふたつの料理がある例です。
-
復習のために、
こちらは、上にひとつの料理がある例です。
-
こちらは、上にふたつの料理がある例です。
-
Let’s keep going to the end.{' '}
-
-
-
-
-
-
- The rest is simple.
@@ -1810,7 +1810,7 @@ export default () => (
- The rest is simple.
-
-
-
では、
-
では、
-
残りは
@@ -1837,7 +1837,7 @@ export default () => ( />
では、
-
Let’s run it.{' '}
-
This time, we won’t stop until the end!
> @@ -876,7 +876,7 @@ export default () => ( ]} />
-
まずは実行してみるね。
-
今回は、最後まで止まらずに早送りします!
> @@ -945,7 +945,7 @@ export default () => ( ]} />
-
// まずは実行してみるね。
-//
今回は、最後まで止まらずに早送りします!
// > @@ -2175,7 +2175,7 @@ export default () => ( // ]} // /> //
-//
-
-
Let’s continue then!{' '}
-
それでは、
-
-
では、最後まで進めてみましょう。
-
To wrap up, let’s go through the entire process{' '}
Here’s the previous example with
@@ -1116,35 +1129,39 @@ export default () => (
)
},
{
- title: (
- <>
- Let’s
-
Here’s the previous example with
diff --git a/src/contents/4.jp.tsx b/src/contents/4.jp.tsx index 3986bdff8..801ef7bea 100644 --- a/src/contents/4.jp.tsx +++ b/src/contents/4.jp.tsx @@ -900,7 +900,6 @@ export default () => (
- Let’s continue then!{' '}
-
- あとは前回とやり方は変わらない。
-
- では復習のために、最初から最後まで
-
では復習のために、最初から最後まで見てみよう。
> ) } @@ -933,7 +928,7 @@ export default () => ( が残るはずだ。
-
- では、ここからは
-
では、最後まで見ていきましょう!
-
- 残りは
-
- 残りは
-
では、最後まで見ていきましょう:
-
Ok, let’s do a review just in case.
We’ll run it from the beginning to the end using the{' '}
-
- Let’s{' '}
-
The rest is simple though. Let’s{' '}
-
- Let’s{' '}
-
- Let’s{' '}
-
Let’s run the above lunchbox.{' '}
@@ -748,9 +748,8 @@ export default () => (
became
- Now, just{' '}
-
- では、最後まで
-
- Let’s{' '}
-
では、もともとの弁当箱を
-
今回は、前回サヤが考えた弁当箱を
-
そして
これを
-
- というわけで、最後まで
-
というわけで、先ほどの弁当箱は
-
これも
-
- Let’s
それでは、
-
まず、
From a89e0b02937121d460424425240e09bda2d78a88 Mon Sep 17 00:00:00 2001
From: Shu Uesugi
- それでは、上記の弁当箱を実行してみましょう!途中まで早送りしてみますね。
+ それでは、上記の弁当箱を実行してみましょう!途中まで進めてみますね。
なるほど、
それじゃあ、早送りしてみよう! それじゃあ、実行してみよう!
そう。つまり上の「
- 上の弁当箱も早送りすると、先ほどと同じように、終了直前に以下のようになる。だから、繰り返しの機能と同じことができるんだ。
+ 上の弁当箱も実行すると、先ほどと同じように、終了直前に以下のようになる。だから、繰り返しの機能と同じことができるんだ。
@@ -1158,11 +1158,11 @@ export default () => (
今回は、最後まで止まらずに早送りします! 今回は、最後まで止まらずに実行します!
- 上の弁当箱は実行に時間がかかるので、ここでは早送りはしませんが、
+ 上の弁当箱を実行するのは、時間がかかるので今回は行いませんが、
今回は、最後まで止まらずに早送りします! 今回は、最後まで止まらずに実行します!
-// 上の弁当箱は実行に時間がかかるので、ここでは早送りはしませんが、
+// 上の弁当箱を実行するのは、時間がかかるので今回は行いませんが、
//
なんとなく「
From 5f048fb843dadbfa666a5c7fb70e4ff0309c878c Mon Sep 17 00:00:00 2001
From: Shu Uesugi
+ では、それぞれ
+ まず、
+
+ ここでは、こちらの
+ これを
では、
-
+ 最後に残ったこちらの弁当箱は、
+ ということは…
+ つまり、 では、ここで疑問なのですが…
- では、ここで疑問なのですが…{' '}
-
- 早送りが終わる直前に
+ 実行が終わる直前に
以下のようになり…
-
-
+
+
+ >
+ )
+ }
+ ]}
+ />
+
+
+
-
-
-
-
- では、それぞれ
では、試してみましょう!
> ) } @@ -574,33 +535,7 @@ export default () => ( children: ( <>
- まず、
-
- ここでは、こちらの
ということです。
-
これが、計算箱に備わっている機能のひとつ、「
+ つまり、 つまり、どういうことか分かりますか?
+ もしかして…
+ サヤちゃん、その通りです! え、どういうこと?
+ つまり、
+
+
+
+ ここで思い出してほしいのですが…計算箱にも「
+
+ 計算箱ではこれを使うことで、何らかの数字に1を足すことができます。
+
+ 今回学んだのは、
+
+ 弁当箱を使う場合は、
+
+ つまり、
+
+ もちろん、もっと複雑な計算箱も弁当箱で再現できます。
+
+ たとえば、初級その1に登場したこちらの計算箱をご覧ください。
+
+ これを弁当箱で「
+ 分かった!まず、
+
+ そして、先ほどの
+ 正解です!では、
+
+ (
+
+ 最後に残ったこちらの弁当箱は、
+
+ これを弁当箱で再現するには、
+
+ 上の弁当箱を実行するのは、時間がかかるので今回は行いませんが、
+
+ まとめると、
+
- これを弁当箱で再現するには、
-
- 上の弁当箱を実行するのは、時間がかかるので今回は行いませんが、
-
- まとめると、
-
- いや、まだ分からんぞ。
-
- たとえば、
-
- じゃあ、
- サヤが考えた弁当箱を合体させてみるね!
- 合体したものを
-
- まずは実行してみるね。
- 今回は、最後まで止まらずに実行します! 結果はこうなったよ!
- この弁当箱は、
-
- つまり、
- わーい、わーい! す、すごい…!
- ではここで正解を言いましょう。
-
- だから、
- わーい、ミニオンさんありがとう!
- さらに言うと、サヤちゃんが考えた弁当箱以外にも、
- サヤが考えた弁当箱の場合、 ということかな?
- その通りです。サヤちゃんが考えた弁当箱は、ちゃんとこの法則に当てはまっているのです。
-
- じゃあ、たとえばこの弁当箱でも、同じ法則に沿っているから、
-
-
- はい、
-
-
- 実行したとき、
-
-
- 結果、
-
- つまり、
-
- なるほど、やっぱりこちらの弁当箱にも
-
- 俺らふだん頭を使っていないから、情報量が多すぎて疲れてしまった…
- ちょっとひと休みしてもらえないか? いいですよ、ひと休みしましょう!
- ちなみに現時点で、
-
- いい機会なので、少し立ち止まって振り返ってみましょう。
-
- まずこちらをご覧ください。これは、「
-
- これまで学んだことを一言でまとめると、上の計算箱にあるような「
-
- 「
-
-
-
- つまり、先ほど登場した
-
- これが、「 もちろん、もっと複雑な計算箱も弁当箱で再現できます。
- たとえば、初級その1に登場したこちらの計算箱をご覧ください。
-
- これを弁当箱で再現するには、
-
- 上の弁当箱を実行するのは、時間がかかるので今回は行いませんが、
-
まとめると、
@@ -1802,7 +1128,7 @@ export default () => (
- This looks like a lunchbox that has{' '}
-
If you{' '}
これはもしかして…
つまり、
+ What do you think happens{' '}
- If you combine
…with the following lunchbox which can be converted to{' '}
-
The devil! As you promised, give us our mathboxes back!
diff --git a/src/contents/9.jp.tsx b/src/contents/9.jp.tsx
index 9cf3580ca..34592e547 100644
--- a/src/contents/9.jp.tsx
+++ b/src/contents/9.jp.tsx
@@ -29,11 +29,7 @@ export default () => (
title: <>サヤちゃんの疑問>,
content: (
<>
-
- サヤちゃんは、
- サヤちゃんは、あることに気が付きました。
- これを、前回サヤが考えた
-
- 前回サヤちゃんが考えた
-
次の
- いろいろあったけど、これで、
- 悪魔よ、約束通り計算箱は返してもらう!
+
+ Looks like Saya noticed something strange.
+ 前回は、 それでは、話を進めましょう! わかりました。こちらの弁当箱をご覧ください。
- 前回と同じく、
-
+ // 前回と同じく、
+ //
- わかりました。では、「
- なんか、めちゃくちゃ複雑な弁当箱だな…
- そして、
-
- なに、
-
- 前回の
- なんか、めちゃくちゃ複雑な弁当箱だな… その通りです。
+ そうですね。正しく{' '}
+
- つまりこれを使えば、計算箱の「
-
- しかし…こんな複雑な弁当箱の{' '}
+ うーん、こんな複雑な弁当箱の{' '}
村人たちが困っていると、またサヤちゃんが何かひらめいたようです。
-
-
-
-
- However,{' '}
-
- Now, let’s talk about
-
-
-
-
+
+
+
+
+ However,{' '}
+
+ Otherwise, you should keep reading instead by pressing this
+ button:
+
+ Now, let’s talk about
+
+
+
+ Ok, let’s go to the advanced levels!
+ どうだ、「
+
+ 約束通り、「
+ ぐぬぬ…では、返してやろう!
+ やったー!
+ しかし、
+
+ 返してほしかったら、これらも弁当箱で再現してみるんだな!
+
+ 難しそう…しかし、こっちには
+ よーし、望むところだ!上級編へ進もう!
+ 「上級編が終わるまで説明はいいや」という方は、こちらのボタンから先に進んでください!
+
@@ -1262,7 +1411,7 @@ export default () => (
上級編をすべて終えたあとに詳しく説明します
+
+ 合体させて実行すると、
+
+ 変換できる弁当箱になる
+
+
+
+ 弁当箱でも行うことができる
+ >
+ }
+ />
+
+ 弁当箱で「
+
「
+
+
+ 合体すれば、
+
+
+ 弁当箱で「
-
- 合体すれば、
-
-
- 弁当箱で「
-
- して、結果が
- それ以外なら
-
-
-
-
-
-
-
-
- 弁当箱にも
-
-
- 実行すると
- 弁当箱で「
+
(
-
-
- 合体すれば、
-
-
+
-
-
+ 弁当箱と合体させて、
実行するとどうなる?
+ 「
+
+ 再現できる弁当箱
+
+
+ 合体させて実行すると、
+
+ 変換できる弁当箱になる
+
From 632b61150ab51501fdd8232c8d2932d7288ec35b Mon Sep 17 00:00:00 2001
From: Shu Uesugi
- 何らかの料理が入る
-
-
-
+ 再現することができる
+
-
+
-
- 使えば、再現できる
-
- 何らかの料理が入る
-
-
-
-
-
- computer science research
-
- more than 80 years ago.
- >
- }
- />
-
-
- >
- )
- },
{
title: <>That’s it for the intermediate levels!>,
content: (
@@ -1609,6 +1448,177 @@ export default () => (
+
+
+
+
+ computer science research
+
+ more than 80 years ago.
+ >
+ }
+ />
+
+
+
+ 繰り返す
+
+ 繰り返す
+
- ということだけ頭に入れておいてください!
- どうだ、「
-
- 約束通り、「
-
ぐぬぬ…では、返してやろう!
- > - ) - }, - { - type: 'celebrate', - children: ( - <> -
- やったー!
- しかし、
-
- 返してほしかったら、これらも弁当箱で再現してみるんだな! -
- > - ) - } - ]} - /> -
- 難しそう…しかし、こっちには
-
よーし、望むところだ!上級編へ進もう!
- > - ) - } - ]} - />
「
ふむふむ…まさか今回も一発で正解なんてことはありえないと思うけど、とりあえず試してみるか。
+ > + ) + }, + { + type: 'saya', + children: ( + <>
- 前回もやったように、
+ まず、
- 今回は
-
- つまり、実行した時に、
-
+ では、こちらの
+
合体させるとこうなるよ!
+ > + ) + } + ]} + /> +
- じゃあ、
-
- それでは、上記の弁当箱を実行してみましょう!途中まで進めてみますね。
+ それでは、
Ugh… Grr… Ugh…! Grr…!
- 合体したものを実行して、
-
合体させるとこうなるよ!
> ) } ]} /> -
+ よし、
+
まずは実行してみるね。
ということは、サヤちゃんの弁当箱は…
+ということですね。
+ > + ) + } + ]} + /> +Ugh…!
+Grr…!
> ) } diff --git a/src/lib/runners/dtle.json b/src/lib/runners/dtle.json new file mode 100644 index 000000000..0f3128038 --- /dev/null +++ b/src/lib/runners/dtle.json @@ -0,0 +1,354 @@ +{ + "expressionContainers": [ + { + "expression": { + "arg": { + "arg": { + "name": "g", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "name": "h", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "arg": { + "name": "h", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1, + 2 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "func": { + "name": "g", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 2 + ], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "state": "default", + "type": "call", + "priority": 2, + "maxNestedFunctionDepth": 0 + }, + "func": { + "name": "g", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "state": "default", + "type": "call", + "priority": 1, + "maxNestedFunctionDepth": 0 + }, + "type": "function", + "maxNestedFunctionDepth": 1 + }, + "type": "function", + "maxNestedFunctionDepth": 2 + }, + "func": { + "arg": { + "name": "a", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "name": "b", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "name": "c", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "arg": { + "name": "f", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 3 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "name": "f", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "type": "function", + "maxNestedFunctionDepth": 1 + }, + "func": { + "arg": { + "arg": { + "name": "f", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 2 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "name": "c", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "type": "function", + "maxNestedFunctionDepth": 1 + }, + "func": { + "arg": { + "arg": { + "name": "d", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "name": "e", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "arg": { + "name": "b", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1, + 2 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "func": { + "name": "d", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 2 + ], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "state": "default", + "type": "call", + "priority": 2, + "maxNestedFunctionDepth": 0 + }, + "func": { + "name": "e", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "state": "default", + "type": "call", + "priority": 1, + "maxNestedFunctionDepth": 0 + }, + "type": "function", + "maxNestedFunctionDepth": 1 + }, + "type": "function", + "maxNestedFunctionDepth": 2 + }, + "func": { + "name": "a", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1, + 2, + 3 + ], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "state": "default", + "type": "call", + "priority": 1, + "maxNestedFunctionDepth": 2 + }, + "state": "default", + "type": "call", + "priority": 2, + "maxNestedFunctionDepth": 2 + }, + "state": "default", + "type": "call", + "priority": 3, + "maxNestedFunctionDepth": 2 + }, + "type": "function", + "maxNestedFunctionDepth": 3 + }, + "type": "function", + "maxNestedFunctionDepth": 4 + }, + "type": "function", + "maxNestedFunctionDepth": 5 + }, + "state": "default", + "type": "call", + "priority": 1, + "maxNestedFunctionDepth": 5 + }, + "numLeafNodes": 9, + "containerState": "ready", + "previouslyChangedExpressionState": "default" + } + ], + "speed": 1, + "hideControls": true, + "explanationsVisibility": "hidden", + "hidePriorities": false, + "hideRunButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": false, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": { + "g": "highlighted", + "h": "highlighted" + }, + "highlightOverrideActiveAfterStart": false, + "highlightFunctions": false, + "showBottomProgressBar": false +} diff --git a/src/lib/runners/gqct.json b/src/lib/runners/gqct.json new file mode 100644 index 000000000..b3d6729af --- /dev/null +++ b/src/lib/runners/gqct.json @@ -0,0 +1,278 @@ +{ + "expressionContainers": [ + { + "expression": { + "arg": { + "name": "shorthandNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumber": 2, + "shorthandNumberAfterConvert": "number", + "maxNestedFunctionDepth": 0 + }, + "func": { + "arg": { + "name": "a", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "name": "b", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "name": "c", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "arg": { + "name": "f", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 3 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "name": "f", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "type": "function", + "maxNestedFunctionDepth": 1 + }, + "func": { + "arg": { + "arg": { + "name": "f", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 2 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "name": "c", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "type": "function", + "maxNestedFunctionDepth": 1 + }, + "func": { + "arg": { + "arg": { + "name": "d", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "name": "e", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "arg": { + "name": "b", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1, + 2 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "func": { + "name": "d", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 2 + ], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "state": "default", + "type": "call", + "priority": 2, + "maxNestedFunctionDepth": 0 + }, + "func": { + "name": "e", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "state": "default", + "type": "call", + "priority": 1, + "maxNestedFunctionDepth": 0 + }, + "type": "function", + "maxNestedFunctionDepth": 1 + }, + "type": "function", + "maxNestedFunctionDepth": 2 + }, + "func": { + "name": "a", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1, + 2, + 3 + ], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "state": "default", + "type": "call", + "priority": 1, + "maxNestedFunctionDepth": 2 + }, + "state": "default", + "type": "call", + "priority": 2, + "maxNestedFunctionDepth": 2 + }, + "state": "default", + "type": "call", + "priority": 3, + "maxNestedFunctionDepth": 2 + }, + "type": "function", + "maxNestedFunctionDepth": 3 + }, + "type": "function", + "maxNestedFunctionDepth": 4 + }, + "type": "function", + "maxNestedFunctionDepth": 5 + }, + "state": "default", + "type": "call", + "priority": 1, + "maxNestedFunctionDepth": 5 + }, + "numLeafNodes": 8, + "containerState": "ready", + "previouslyChangedExpressionState": "default" + } + ], + "speed": 1, + "hideControls": true, + "explanationsVisibility": "hidden", + "hidePriorities": false, + "hideRunButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": false, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": {}, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "highlightFunctions": false, + "showBottomProgressBar": false +} From 7d2a3d7c186ed6e3abf8e245dd644f05665dc5bb Mon Sep 17 00:00:00 2001 From: Shu Uesugiまさか、こうも簡単に正解されるとは思わなかったが…
- ちなみに、サヤちゃんが考えた弁当箱以外にも、
-
- たしかにサヤちゃんの弁当箱は、上の法則に当てはまっている… -
よくこんなの分かったなあ。サヤちゃんは天才なのかもしれない!
@@ -1141,35 +1116,13 @@ export default () => ( } ]} /> - > - ) - }, - { - type: 'summary', - title: ( - <> - 「
- 今回学んだことを一言でまとめると、
-
- たとえば、以下のような
- これを弁当箱で再現するには、
-
- まとめると、
-
- 今回の「
+ ちなみに、今回の「
+
+
でした。
+他にも、例えば
+
+ にしても、「
+
+ つまり、「
+
+
+ 気になる方は、↓の「続きを読む」を押してみてください。 + (読まなくても先に進めます!) +
+ > + ) + }} + /> + > + ) + } }, { type: 'challengeProblem', diff --git a/src/lib/runners/blvt.json b/src/lib/runners/blvt.json index 26988748f..1c30621c5 100644 --- a/src/lib/runners/blvt.json +++ b/src/lib/runners/blvt.json @@ -123,7 +123,6 @@ "maxNestedFunctionDepth": 2 }, "type": "function", - "meta": "plusOneEffect", "maxNestedFunctionDepth": 3 }, "numLeafNodes": 4, diff --git a/src/lib/runners/oykb.json b/src/lib/runners/oykb.json index 2552a36fd..5ebc9e3c2 100644 --- a/src/lib/runners/oykb.json +++ b/src/lib/runners/oykb.json @@ -123,7 +123,6 @@ "maxNestedFunctionDepth": 2 }, "type": "function", - "meta": "plusOneEffect", "maxNestedFunctionDepth": 3 }, "numLeafNodes": 4, From edda03d34bc9604828a27684cf98c609677c16ce Mon Sep 17 00:00:00 2001 From: Shu Uesugi
- // 前回と同じく、
- //
+
+ たとえば、以下のような弁当箱でも、「
+
+
+ 気になる方は、↓の「続きを読む」を押してみてください。 + (読まなくても先に進めます!) +
+ > + ) + }} + /> + > + ) + } }, { title: <>中級はここまで!>, diff --git a/src/lib/runners/cbmn.json b/src/lib/runners/cbmn.json index a9d9970cd..b7eb45e85 100644 --- a/src/lib/runners/cbmn.json +++ b/src/lib/runners/cbmn.json @@ -230,7 +230,6 @@ "maxNestedFunctionDepth": 4 }, "type": "function", - "meta": "minusOneEffect", "maxNestedFunctionDepth": 5 }, "numLeafNodes": 6, diff --git a/src/lib/runners/onyr.json b/src/lib/runners/onyr.json new file mode 100644 index 000000000..f8cdd3afb --- /dev/null +++ b/src/lib/runners/onyr.json @@ -0,0 +1,261 @@ +{ + "expressionContainers": [ + { + "expression": { + "arg": { + "name": "g", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "name": "h", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "name": "i", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "arg": { + "name": "l", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 3 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "name": "l", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "type": "function", + "maxNestedFunctionDepth": 1 + }, + "func": { + "arg": { + "arg": { + "name": "l", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 2 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "name": "i", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "type": "function", + "maxNestedFunctionDepth": 1 + }, + "func": { + "arg": { + "arg": { + "name": "j", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "name": "k", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "arg": { + "name": "h", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1, + 2 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "func": { + "name": "j", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 2 + ], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "state": "default", + "type": "call", + "priority": 2, + "maxNestedFunctionDepth": 0 + }, + "func": { + "name": "k", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1 + ], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "state": "default", + "type": "call", + "priority": 1, + "maxNestedFunctionDepth": 0 + }, + "type": "function", + "maxNestedFunctionDepth": 1 + }, + "type": "function", + "maxNestedFunctionDepth": 2 + }, + "func": { + "name": "g", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1, + 2, + 3 + ], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "state": "default", + "type": "call", + "priority": 1, + "maxNestedFunctionDepth": 2 + }, + "state": "default", + "type": "call", + "priority": 2, + "maxNestedFunctionDepth": 2 + }, + "state": "default", + "type": "call", + "priority": 3, + "maxNestedFunctionDepth": 2 + }, + "type": "function", + "maxNestedFunctionDepth": 3 + }, + "type": "function", + "maxNestedFunctionDepth": 4 + }, + "type": "function", + "maxNestedFunctionDepth": 5 + }, + "numLeafNodes": 6, + "containerState": "ready", + "previouslyChangedExpressionState": "default" + } + ], + "speed": 1, + "hideControls": true, + "explanationsVisibility": "hidden", + "hidePriorities": false, + "hideRunButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": false, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": { + "h": "🅱️", + "g": "🅰️", + "i": "C", + "j": "D", + "k": "E", + "l": "F" + }, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "highlightFunctions": false, + "showBottomProgressBar": false +} From 3efb57ba2eb78e4d0e9db41e122f19e5c0712db1 Mon Sep 17 00:00:00 2001 From: Shu Uesugi
- ちなみに、
-
+
+ たとえば、以下のような弁当箱でも、「
+
+
+ 気になる方は、↓の「続きを読む」を押してみてください。 + (読まなくても先に進めます!) +
+ > + ) + }} + /> + > + ) + } }, { title: <>繰り返しの機能は?>, diff --git a/src/lib/runners/imhz.json b/src/lib/runners/imhz.json new file mode 100644 index 000000000..e3a9abbc8 --- /dev/null +++ b/src/lib/runners/imhz.json @@ -0,0 +1,209 @@ +{ + "expressionContainers": [ + { + "expression": { + "arg": { + "name": "blankNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 4 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumberAfterConvert": "falseCase", + "maxNestedFunctionDepth": 0 + }, + "func": { + "arg": { + "name": "blankNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 3 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "shorthandNumberAfterConvert": "trueCase", + "maxNestedFunctionDepth": 0 + }, + "func": { + "arg": { + "arg": { + "name": "h", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 2 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "name": "i", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "name": "h", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "type": "function", + "maxNestedFunctionDepth": 1 + }, + "type": "function", + "maxNestedFunctionDepth": 2 + }, + "func": { + "arg": { + "arg": { + "name": "j", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [ + 1 + ], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "name": "f", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "arg": { + "name": "g", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": false, + "maxNestedFunctionDepth": 0 + }, + "body": { + "name": "g", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [], + "emphasizePriority": false, + "bound": true, + "maxNestedFunctionDepth": 0 + }, + "type": "function", + "maxNestedFunctionDepth": 1 + }, + "type": "function", + "maxNestedFunctionDepth": 2 + }, + "type": "function", + "maxNestedFunctionDepth": 3 + }, + "func": { + "name": "blankNumber", + "highlightType": "default", + "topLeftBadgeType": "none", + "bottomRightBadgeType": "none", + "type": "variable", + "argPriorityAgg": [], + "funcPriorityAgg": [ + 1, + 2, + 3, + 4 + ], + "emphasizePriority": false, + "bound": true, + "shorthandNumberAfterConvert": "condition", + "maxNestedFunctionDepth": 0 + }, + "state": "default", + "type": "call", + "priority": 1, + "maxNestedFunctionDepth": 3 + }, + "state": "default", + "type": "call", + "priority": 2, + "maxNestedFunctionDepth": 3 + }, + "state": "default", + "type": "call", + "priority": 3, + "maxNestedFunctionDepth": 3 + }, + "state": "default", + "type": "call", + "priority": 4, + "maxNestedFunctionDepth": 3 + }, + "numLeafNodes": 8, + "containerState": "ready", + "previouslyChangedExpressionState": "default" + } + ], + "speed": 1, + "hideControls": true, + "explanationsVisibility": "hidden", + "hidePriorities": false, + "hideRunButton": false, + "hideBottomRightBadges": false, + "skipToTheEnd": false, + "hideFuncUnboundBadgeOnExplanation": false, + "highlightOverridesCallArgAndFuncUnboundOnly": false, + "bottomRightBadgeOverrides": { + "g": "🅱️", + "f": "🅰️", + "h": "C", + "i": "D", + "j": "E" + }, + "highlightOverrides": {}, + "highlightOverrideActiveAfterStart": false, + "highlightFunctions": false, + "showBottomProgressBar": false +} From 2104e24351b2e5e8910ab20e4f1e26e166685f11 Mon Sep 17 00:00:00 2001 From: Shu Uesugi
- ちなみに、以下のような法則に当てはまる弁当箱は、どれも「
-
そうなんだ。でもすごいね。
@@ -1425,7 +1406,53 @@ export default () => (
}
/>
>
- )
+ ),
+ footer: {
+ content: (
+ <>
+
+
+ たとえば、以下のような弁当箱も「
+
+
-//
-// ただ、
-//
-// では約束通り、
-//
-//
-// わかりました。まず、
-//
-// 何だか複雑そうな弁当箱だなあ…
-//
-// それが今回の問題です!
-//
-// でも、まだ何の情報もないから…
-//
-// その通りです。まだ説明することがありますから。では、続けますね!
-//
-// 先ほどの弁当箱は、
-//
-//
-// 背景に
-// そうですね。背景にある{' '}
-//
-// その
-// では、説明しますね!
-//
-// まず、
-// この合体した弁当箱を、
-// すると、
-//
-// これが
-//
-// 一言で言うと、
-// うーん、具体例で説明してくれる?
-// では、具体例で説明しましょう!
-//
-// 前回の復習ですが、この弁当箱は、ぼくが計算箱に変換すると{' '}
-//
-// では上の弁当箱を、先ほどの
-//
-// では、この弁当箱を「
-//
-// そうなんです!つまり、
-// を押すと、
-//
-// つまりざっくり言うと、
-//
-// 続いて、
-//
-// この弁当箱は、ぼくが計算箱に変換すると{' '}
-//
-// この弁当箱も、
-//
-// こちらを「
-//
-// そうなんです!まとめると、以下のようになります。
-// ざっくり言うと、今度は{' '}
-// まとめると、
-// を押すと、
-//
-// では、ここで問題です。
-//
-// 先ほどのような、
-//
-// つまり、
-//
-//
-//
-// この問題こそが、以前から話していた「難しい問題」だ。
-//
-// うーん…
-// 大丈夫、安心してください!
-//
-// わかった。じゃあとりあえず、
-//
-//
-// この弁当箱に、
-//
-// そうですね。そして、
-//
-// つまり、以下のように
-// 結果が
-// では、
-//
-// これを先ほどの弁当箱と組み合わせて、
-//
-// すなわち、
-// では、上の弁当箱を実行したらどうなるか見ていこう!
-//
-// 復習したい場合は、↓の「初級編の内容を復習する」を押してください。
-// つまり、最終的に以下のようになりました!
-// 実行を終えたので、
-//
-// 残念ながら、
-//
-// 理由は、
-//
-//
-// ダメか…
-//
-// つまり、実行しても{' '}
-//
-// だから、
-//
-// 残念…やっぱり、適当に{' '}
-//
-// 問題の意味が分かったでしょうか?では、もう一度聞きますね。
-//
-//
-//
-// 繰り返しますが、先ほど適当に料理を入れた以下の弁当箱は、不正解でした!
-//
-// うーん…問題の意味は分かったけど、答え方が分からない!
-//
-// せっかく計算箱を返してもらえるチャンスなのに、問題が難しくて村人は苦戦しているようですね。
-//
-// しかし、
-// ラムダ村の村人たちは、前回の問題に四苦八苦していました。 だめだ…全然分からない!
-// これを解かないと計算箱を返してもらえないのに…どうしよう…
-//
-// その時です。ラムダ村に暮らす少女の
-// ねえねえ、みんな何してるの?
-// おお、サヤちゃんか。実は、にっくき悪魔
-// 奴が出題した問題を解かないと計算箱を返してもらえないんだけど、俺らには難しくて解けないんだよ。
-// ふーん、じゃあサヤも解くのを手伝うよ!
-// 手伝ってくれるのはありがたいけど、この問題はママゴトじゃないんだよ。俺らがどれだけ頑張っても分からなかったんだ。
-//
-// サヤちゃんは少し考えた後、
-//
-// ねえねえ、サヤも
-// ふむふむ…どうせ上手くいかないと思うけど、試してみるか。
-//
-// 前回もやったように、
-//
-//
-// じゃあ、
-// つまり、最終的に以下のようになりました! こ、これはもしや…?
-// この弁当箱は、
-// ということは、サヤちゃんの弁当箱は…
-//
-// つまり、
-// やったー!
-// そんなバカな…!俺らがどれだけ頭をひねっても分からなかったのに、サヤちゃんにいとも簡単に解かれるなんて!
-//
-// いや、まだ分からんぞ。
-//
-// たとえば、
-//
-// じゃあ、
-//
+
「
-// 答えられたら計算箱を返してやろう!
-// >
-// }
-// />
-//
-// 何らかの料理が入る
-//
-// 当ててもらいます!
-//
-//
-//
-// すると、結果は
-//
-//
-//
-//
-// すると、結果は
-//
-// すると、結果は
-//
-//
-//
-// すると、結果は
-//
-//
-// 先ほどの弁当箱を合体させ…
-//
-//
-// それ以外なら
-// 先ほどの弁当箱を合体させ…
-//
-// それ以外なら
-//
-//
-// 計算箱に変換できない
-//
-// だったら、
-//
-//
-//
-// して、結果が
-// それ以外なら
-//
-// すると、結果が