var lesson = {
	files: [
		{
			name: "main",
			content: "import { render } from 'solid-js/web';\nimport { createSignal, createMemo } from 'solid-js';\n\nfunction fibonacci(num) {\n  if (num <= 1) return 1;\n\n  return fibonacci(num - 1) + fibonacci(num - 2);\n}\n\nfunction Counter() {\n  const [count, setCount] = createSignal(10);\n  const fib = () => fibonacci(count());\n\n  return (\n    <>\n      <button onClick={() => setCount(count() + 1)}>Count: {count()}</button>\n      <div>1. {fib()} {fib()} {fib()} {fib()} {fib()}</div>\n      <div>2. {fib()} {fib()} {fib()} {fib()} {fib()}</div>\n      <div>3. {fib()} {fib()} {fib()} {fib()} {fib()}</div>\n      <div>4. {fib()} {fib()} {fib()} {fib()} {fib()}</div>\n      <div>5. {fib()} {fib()} {fib()} {fib()} {fib()}</div>\n      <div>6. {fib()} {fib()} {fib()} {fib()} {fib()}</div>\n      <div>7. {fib()} {fib()} {fib()} {fib()} {fib()}</div>\n      <div>8. {fib()} {fib()} {fib()} {fib()} {fib()}</div>\n      <div>9. {fib()} {fib()} {fib()} {fib()} {fib()}</div>\n      <div>10. {fib()} {fib()} {fib()} {fib()} {fib()}</div>\n    </>\n  );\n}\n\nrender(() => <Counter />, document.getElementById('app'))\n"
		}
	]
};
var solved = {
	files: [
		{
			name: "main",
			content: "import { render } from 'solid-js/web';\nimport { createSignal, createMemo } from 'solid-js';\n\nfunction fibonacci(num) {\n  if (num <= 1) return 1;\n\n  return fibonacci(num - 1) + fibonacci(num - 2);\n}\n\nfunction Counter() {\n  const [count, setCount] = createSignal(10);\n  const fib = createMemo(() => fibonacci(count()));\n\n  return (\n    <>\n      <button onClick={() => setCount(count() + 1)}>Count: {count()}</button>\n      <div>1. {fib()} {fib()} {fib()} {fib()} {fib()}</div>\n      <div>2. {fib()} {fib()} {fib()} {fib()} {fib()}</div>\n      <div>3. {fib()} {fib()} {fib()} {fib()} {fib()}</div>\n      <div>4. {fib()} {fib()} {fib()} {fib()} {fib()}</div>\n      <div>5. {fib()} {fib()} {fib()} {fib()} {fib()}</div>\n      <div>6. {fib()} {fib()} {fib()} {fib()} {fib()}</div>\n      <div>7. {fib()} {fib()} {fib()} {fib()} {fib()}</div>\n      <div>8. {fib()} {fib()} {fib()} {fib()} {fib()}</div>\n      <div>9. {fib()} {fib()} {fib()} {fib()} {fib()}</div>\n      <div>10. {fib()} {fib()} {fib()} {fib()} {fib()}</div>\n    </>\n  );\n}\n\nrender(() => <Counter />, document.getElementById('app'))\n"
		}
	]
};
var markdown = "Die meiste Zeit über sind abgeleitete Signale ausreichend. Allerdings ist es manchmal sinnvoll, Werte zwischenzuspeichern.\nUm doppelte Arbeit zu vermeiden, können wir Memos verwenden, um eine Funktion auszuführen und das Ergebnis zu speichern, bis sich deren Abhängigkeiten ändern. Das ist nützlich, um Berechnungen für Effekte zu speichern, die zusätzliche Abhängigkeiten haben und den Aufwand für aufwendige Operationen auszugleichen wie DOM-Node-Erstellung.\n\nMemos sind gleichzeitig Beobachter wie ein Effekt und ein nur lesbares Signal. Da sie sowohl ihre Abhängigkeiten als auch ihre Beobachter reaktiv verfolgen, können sie sicherstellen, dass sie nur einmal für eine Änderung laufen. Das macht sie bevorzugt gegenüber Effekten, die in Signale schreiben. Generell sollte, was abgeleitet werden kann, auch abgeleitet werden.\n\nEin Memo zu erstellen ist so einfach wie eine Funktion an `createMemo` zu übergeben; das man aus `solid-js` importieren kann. In diesem Beispiel, wird die Neuberechnung des Werts mit jedem Klick immer aufwendiger. Wenn wir sie in `createMemo` schachteln, muss nur einmal pro Klick neu berechnet werden:\n\n```jsx\nconst fib = createMemo(() => fibonacci(count()));\n```\nSchreibe ein `console.log` in die `fib`-Funktion, um zu sehen, wie oft sie aufgerufen wird:\n```jsx\nconst fib = createMemo(() => {\n  console.log(\"Calculating Fibonacci\");\n  return fibonacci(count());\n});\n```\n";
var introduction_memos = {
	lesson: lesson,
	solved: solved,
	markdown: markdown
};

export { introduction_memos as default, lesson, markdown, solved };
