<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: откуда x]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме откуда x форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Fri, 01 May 2026 11:08:34 +0300</pubDate>
		<item>
			<title>откуда x</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message35815/topic4169/">откуда x</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_xOTj4lM4" href="/user/3905/" bx-tooltip-user-id="3905">Let_it_go</a> написал:<br /> Почему второй принт выводит 2, а не 1?<br />Ведь во второй строчке идёт обнуление переменной i. Она не может сохранить старое значение 1 и превращается в 0. Откуда 2?<br />=============<br />Получается, что 1 будут выводить только такие принты, в которых будет создаваться новый экземпляр newCounter вместе с новым нулевым i:<br />
====code====
<pre>print(newCounter()()) --&#62; 1
print(newCounter()()) --&#62; 1</pre>
=============
<br /><br /><br /><br />====quote====<br /><a class="blog-p-user-name" id="bp_0CoAsrwY" href="/user/966/" bx-tooltip-user-id="966">SDL</a> написал:<br />Потому что функция c1, которая создана вызовом newCounter(), - не простая функция, а т.н. &quot;замыкание&quot;. Она не просто может сохранить старое значение 1, она это делает, т.к. переменная i является для этой функции внешней, и именно для этого подобные конструкции и предусмотрены. См., например: &nbsp; <noindex><a href="https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%BC%D1%8B%D0%BA%D0%B0%D0%BD%D0%B8%D0" target="_blank" rel="nofollow">https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%BC%D1%8B%D0%BA%D0%B0%D0%BD%D0%B8%D0<WBR/>&shy;</a></noindex> ­%B5_(%D0%BF%D1%80%D... &nbsp;<br />=============<br />Прикольно) Спасибо! <br />
			<i>16.01.2019 06:41:50, vgi.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message35815/topic4169/</link>
			<guid>http://forum.quik.ru/messages/forum10/message35815/topic4169/</guid>
			<pubDate>Wed, 16 Jan 2019 06:41:50 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>откуда x</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message35811/topic4169/">откуда x</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Потому что функция c1, которая создана вызовом newCounter(), - не простая функция, а т.н. &quot;замыкание&quot;. Она не просто может сохранить старое значение 1, она это делает, т.к. переменная i является для этой функции внешней, и именно для этого подобные конструкции и предусмотрены. См., например: <noindex><a href="https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%BC%D1%8B%D0%BA%D0%B0%D0%BD%D0%B8%D0%B5_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)" target="_blank" rel="nofollow">https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%BC%D1%8B%D0%BA%D0%B0%D0%BD%D0%B8%D0<WBR/>&shy;%B5_(%D0%BF%D1%80%D...</a></noindex> <br />
			<i>15.01.2019 23:30:09, SDL.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message35811/topic4169/</link>
			<guid>http://forum.quik.ru/messages/forum10/message35811/topic4169/</guid>
			<pubDate>Tue, 15 Jan 2019 23:30:09 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>откуда x</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message35810/topic4169/">откуда x</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Ещё один вопрос оттуда же<br />
====code====
<pre>function newCounter ()
&nbsp;&nbsp;&nbsp;local i = 0
&nbsp;&nbsp;&nbsp;return function () i = i + 1 return i end
end
c1 = newCounter()
print(c1()) --&#62; 1
print(c1()) --&#62; 2</pre>
=============
Почему второй принт выводит 2, а не 1?<br />Ведь во второй строчке идёт обнуление переменной i. Она не может сохранить старое значение 1 и превращается в 0. Откуда 2? <br />
			<i>15.01.2019 23:01:07, Let_it_go.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message35810/topic4169/</link>
			<guid>http://forum.quik.ru/messages/forum10/message35810/topic4169/</guid>
			<pubDate>Tue, 15 Jan 2019 23:01:07 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>откуда x</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message35599/topic4169/">откуда x</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<br />====quote====<br /><a class="blog-p-user-name" id="bp_lM7FF0Xj" href="/user/3905/" bx-tooltip-user-id="3905">Let_it_go</a> написал:<br />Откуда function (x) return (f(x + delta) - f(x))/delta end берёт свой аргумент x?<br />=============<br /><br />У Вас функция derivative возвращает функцию (в вашем примере "c" это функция) и X это параметр этой функции.<br />В Вашем примере X задается при вызове c(5.2) <br />
			<i>28.12.2018 05:16:20, Sergey Gorokhov.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message35599/topic4169/</link>
			<guid>http://forum.quik.ru/messages/forum10/message35599/topic4169/</guid>
			<pubDate>Fri, 28 Dec 2018 05:16:20 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>откуда x</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message35594/topic4169/">откуда x</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<img src="http://dl4.joxi.net/drive/2018/12/28/0011/1313/742689/89/736976d5d2.png" alt="Пользователь добавил изображение" border="0" /> <br />
			<i>28.12.2018 00:25:49, Let_it_go.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message35594/topic4169/</link>
			<guid>http://forum.quik.ru/messages/forum10/message35594/topic4169/</guid>
			<pubDate>Fri, 28 Dec 2018 00:25:49 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>откуда x</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message35593/topic4169/">откуда x</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<img src="http://dl4.joxi.net/drive/2018/12/28/0011/1313/742689/89/736976d5d2.png" alt="Пользователь добавил изображение" border="0" />Иду по книжке иерусалимскиса &quot;Программирование на Луа&quot;<br />Поясните пожалуйста этот пример<br />
====code====
<pre>function derivative (f, delta)
&nbsp;&nbsp;&nbsp;delta = delta or 1e-4
&nbsp;&nbsp;&nbsp;return function (x) return (f(x + delta) - f(x))/delta end
end

c = derivative(math.sin)
print(math.cos(5.2), c(5.2))</pre>
=============
Откуда function (x) return (f(x + delta) - f(x))/delta end берёт свой аргумент x?<br /><noindex><a href="http://dl4.joxi.net/drive/2018/12/28/0011/1313/742689/89/736976d5d2.png" target="_blank" rel="nofollow">http://dl4.joxi.net/drive/2018/12/28/0011/1313/742689/89/736976d5d2.pnghttp://dl4.joxi.net/drive/2018/12/28/0011/1313/742689/89/736976d5d2.png</a></noindex> <br />
			<i>28.12.2018 00:25:25, Let_it_go.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message35593/topic4169/</link>
			<guid>http://forum.quik.ru/messages/forum10/message35593/topic4169/</guid>
			<pubDate>Fri, 28 Dec 2018 00:25:25 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
