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 = "В большинстве случаев достаточно составить производные `Сигналы`. Однако иногда полезно кэшировать значения чтобы сократить объем работы. Мы можем использовать `Мемо` (`Memo`) для вычисления функции и сохранения результата до тех пор, пока не изменятся её зависимости. Это отлично подходит для кэширования вычислений эффектов, которые имеют другие зависимости, и упрощения некоторых дорогостоящих операций, таких как создание узла DOM.\n\n`Мемо` являются одновременно наблюдателем, как Эффект, и Сигналом только-для-чтения. Поскольку они \"знают\" как о своих зависимостях, так и о своих наблюдателях, они могут \"убедиться\", что они запускаются только один раз для любого изменения. Это делает их предпочтительнее регистрации Эффектов, изменяющих `Сигналы`. В общем случае, лучше обходиться производными Сигналами везде, где это возможно.\n\nЧтобы создать `Мемо`, нужно просто передать функцию в `createMemo`, импортированную из `solid-js`. В этом примере пересчет значения становится все дороже с каждым кликом. Если мы заключим его в `createMemo`, он будет пересчитан только один раз за клик:\n\n```jsx\nconst fib = createMemo(() => fibonacci(count()));\n```\n\nПоместите `console.log` в функцию `fib`, чтобы узнать, как часто она запускается:\n\n```jsx\nconst fib = createMemo(() => {\n\tconsole.log('Calculating Fibonacci');\n\treturn fibonacci(count());\n});\n```\n";
var introduction_memos = {
	lesson: lesson,
	solved: solved,
	markdown: markdown
};

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