<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-TW">
	<id>https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=%E8%AE%80%E5%8F%96-%E6%B1%82%E5%80%BC-%E8%BC%B8%E5%87%BA%E5%BE%AA%E7%92%B0</id>
	<title>讀取-求值-輸出循環 - 修訂紀錄</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=%E8%AE%80%E5%8F%96-%E6%B1%82%E5%80%BC-%E8%BC%B8%E5%87%BA%E5%BE%AA%E7%92%B0"/>
	<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=%E8%AE%80%E5%8F%96-%E6%B1%82%E5%80%BC-%E8%BC%B8%E5%87%BA%E5%BE%AA%E7%92%B0&amp;action=history"/>
	<updated>2026-05-08T06:01:33Z</updated>
	<subtitle>本 wiki 上此頁面的修訂紀錄</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.taigi.ima.org.tw/w/index.php?title=%E8%AE%80%E5%8F%96-%E6%B1%82%E5%80%BC-%E8%BC%B8%E5%87%BA%E5%BE%AA%E7%92%B0&amp;diff=350304&amp;oldid=prev</id>
		<title>TaiwanTonguesApiRobot：​從 JSON 檔案批量匯入</title>
		<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=%E8%AE%80%E5%8F%96-%E6%B1%82%E5%80%BC-%E8%BC%B8%E5%87%BA%E5%BE%AA%E7%92%B0&amp;diff=350304&amp;oldid=prev"/>
		<updated>2025-08-19T13:55:46Z</updated>

		<summary type="html">&lt;p&gt;從 JSON 檔案批量匯入&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新頁面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;「讀取-求值-輸出」循環&amp;#039;&amp;#039;&amp;#039;（英語：&amp;#039;&amp;#039;&amp;#039;Read-Eval-Print Loop&amp;#039;&amp;#039;&amp;#039;，簡稱&amp;#039;&amp;#039;&amp;#039;REPL&amp;#039;&amp;#039;&amp;#039;）， 嘛予人號做&amp;#039;&amp;#039;&amp;#039;交互式頂層構件&amp;#039;&amp;#039;&amp;#039;（英語：&amp;#039;&amp;#039;&amp;#039;interactive toplevel&amp;#039;&amp;#039;&amp;#039;）， 是一个簡單的，交互式的編程環境。這个詞定定用著指代一个 Lisp 的交互式開發環境，也通指代命令行的模式。&lt;br /&gt;
&lt;br /&gt;
==概述==&lt;br /&gt;
&lt;br /&gt;
_「讀入去-求值-輸出」循環 _ 的名來自以下幾个 Lisp 用來實現這種機制的內置函數：&lt;br /&gt;
&lt;br /&gt;
* 讀入函數接收一个來自用戶的表達式，共解析做資料結構並存入記憶體。比如講，用戶可能會輸入一个 s-表達式 ` ( + 一二三 ) `，這句話會予人解破做一个包含四个元素的鍊表。&lt;br /&gt;
* 求值函數負責處理內部的資料結構並對其求值。佇咧 Lisp 中，求一个以函數名來開頭的 ｓ－表達式意味著著紲落來參數調用彼个函數。所以函數 &amp;quot; ` + ` &amp;quot; 被佇參數 ` 一二三 ` 上調用，產生結果 ` 六 `。&lt;br /&gt;
* 輸出函數接受求值結果，閣呈現予用戶。就算講進前的結果「` 六 `」並無有複雜的格式，但是若是一个較複雜的表達式，按呢伊將會予精心處理，也會當佇閣較方便便的去予人理解。&lt;br /&gt;
&lt;br /&gt;
REPL 予得探索性的編程佮調試閣較利便，因為乎「讀取-求值-輸出」循環通常會比經典的「編輯-編譯-運行-調試」模式愛較緊。&lt;br /&gt;
&lt;br /&gt;
==優點==&lt;br /&gt;
&lt;br /&gt;
REPL 對學習一門新的程式語言有真大的幫贊，因為伊會當隨對初學者做出回應。誠濟工具集佮程式語言使用 REPL 研究算法、進行調試，比如講 MATLAB，ROOT，SciPy 和 IPython。Python 的 doctest 模塊會當通過掠家己的身軀 REPL 命令行的輸出使測試代碼閣較容易地來進行。&lt;br /&gt;
&lt;br /&gt;
因為 ` print ` 函數輸出的數據格式（字符串）和用戶輸入的數據格式（字符串）相仝，大部份攏輸出的結果嘛會當予人帶轉來 ` read ` 函數作為輸入。毋過，有的時陣輸出的結果干焦會當代表求值結果而毋是求值結果本身，比如一个 socket 句柄抑是一寡類的實例。比如講佇 Python 中使用 ` &amp;lt; _ _ 模仿名 _ _ . 徛名號名 &amp;gt; ` 這種形式來代表一个實例本身，佇咧 Common Lisp 中間就使用 ` # &amp;lt; whatever &amp;gt; ` 彼个形體。啊若佇咧 CLIM，SLIME 以及 Symbolics Lisp Machine 的 REPL 煞有法度讀袂歹去予完全字符合串化的遮的對象。𪜶記錄被輸出過的對象，了後做代碼去予人讀的時陣，遮的對象會當予人解破閣重新予人使用。&lt;br /&gt;
&lt;br /&gt;
==實現==&lt;br /&gt;
&lt;br /&gt;
為著實現一个 Lisp REPL，只需要實現這三个函數和一个不停輪詢的函數即可（當然喔，求值函數的實現是上複雜的，因為伊佇內底愛實現像 ` car ` 佮 ` + ` 的原始函數佮像 ` if ` 仝款的特殊操作符仔）。 遮的工課做好了後，一个基本的 REPL 就會當用如下的簡單形式表達：` ( loop ( print ( eval ( read ) ) ) ) `。&lt;br /&gt;
&lt;br /&gt;
一種實現 ` eval ` 的方式就是實現一个遞歸處理抽象語法樹（該語法樹去予 ` read ` 函數創建）的函數。另外一種會當的方法是共這个抽象語法樹編譯做機器碼並執行。&lt;br /&gt;
&lt;br /&gt;
==主要的 REPL 程式語言環境==&lt;br /&gt;
&lt;br /&gt;
APL、BASIC、Clojure、F #、Haskell、J、Julia、Perl、PHP、Prolog、Python、R、Ruby、Scala、Smalltalk、Standard ML、Swift、Tcl、Javascript、Java ( 版本 jdk 操九起 )&lt;br /&gt;
&lt;br /&gt;
==外部連結==&lt;br /&gt;
&lt;br /&gt;
[[分類: 待校正]]&lt;/div&gt;</summary>
		<author><name>TaiwanTonguesApiRobot</name></author>
	</entry>
</feed>