<?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=%E5%88%97%E8%A1%A8%E6%8E%A8%E5%B0%8E%E5%BC%8F</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=%E5%88%97%E8%A1%A8%E6%8E%A8%E5%B0%8E%E5%BC%8F"/>
	<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=%E5%88%97%E8%A1%A8%E6%8E%A8%E5%B0%8E%E5%BC%8F&amp;action=history"/>
	<updated>2026-04-26T23:40:48Z</updated>
	<subtitle>本 wiki 上此頁面的修訂紀錄</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.taigi.ima.org.tw/w/index.php?title=%E5%88%97%E8%A1%A8%E6%8E%A8%E5%B0%8E%E5%BC%8F&amp;diff=474282&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=%E5%88%97%E8%A1%A8%E6%8E%A8%E5%B0%8E%E5%BC%8F&amp;diff=474282&amp;oldid=prev"/>
		<updated>2025-08-23T10:32:42Z</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;（list comprehension）， 是程序設計語言的一類語法結構，用佇基於描述創建一个列表（list）資料結構。佮數學上的集合建構式符號。但無仝款 map 佮 filter 函數。&lt;br /&gt;
&lt;br /&gt;
「 list comprehension」無統一的中文譯法。有譯作列表解析式、列表生成式、列表構建、列表理解等。&lt;br /&gt;
&lt;br /&gt;
==概述==&lt;br /&gt;
&lt;br /&gt;
考慮下述集合建構式符號：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ S=\ { 二 \ cdot x \ mid x \ in \ mathbb { N } , \ x ^ { 二 } &amp;gt; 三 \ } $&lt;br /&gt;
&lt;br /&gt;
會當讀做：「 $ S $ 是所有「$ 二 $ 乘 $ x $」的數的集合，滿足 $ x $ 是自然數 $ \ mathbb { N } $，並且 $ x $ 的平方大於 $ 三 $。」&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ S=\ { \ underbrace { 二 \ cdot x } _ { \ color { Violet } { \ text { 抹出表鋪式 } } } \ mid \ underbrace { x } _ { \ color { Violet } { \ text { 鋪量 } } } \ in \ underbrace { \ mathbb { N } } _ { \ color { Violet } { \ text { 知入集合 } } } , \ \ underbrace { x ^ { 二 } &amp;gt; 三 } _ { \ color { Violet } { \ text { 鋪排 } } } \ } $&lt;br /&gt;
&lt;br /&gt;
* $ x $ 是表示輸入集合的成員的變量。&lt;br /&gt;
* $ \ mathbb { N } $ 表示輸入集合，遮是自然數。&lt;br /&gt;
* $ x ^ { 二 } &amp;gt; 三 $ 是人詞表示式，用佇對輸入集篩選。&lt;br /&gt;
* $ 二 \ cdot x $ 是輸出表達式，用佇產生新的集合。&lt;br /&gt;
* $ \ { \ } $ 花括號表示輸出值組成集合。&lt;br /&gt;
* $ \ mid $ 徛槓讀作「滿足」，會當同冒號「:」相換使用。&lt;br /&gt;
* $ , $ 弄號分隔稱詞，會當讀做「並且」。&lt;br /&gt;
&lt;br /&gt;
列表推導式，佮迵天彼个輸入列表迵天代器，照伊一个列表的表示，有仝款的語法構件：&lt;br /&gt;
&lt;br /&gt;
* 代表輸入列表的成員的一个變量。&lt;br /&gt;
* 一个輸入列表（抑是迵天代器）。&lt;br /&gt;
* 一个可選的人詞（判斷）表達式。&lt;br /&gt;
* 佮對滿足這个判斷的，輸入迵天代者的成員，產生輸出列表的成員的一个表達式。&lt;br /&gt;
&lt;br /&gt;
佇咧 Haskell 的列表推導式語法內底，上述集合建造結構類似的寫做如下：&lt;br /&gt;
&lt;br /&gt;
遮的列表 ` [零 . .] ` 表示 $ \ mathbb { N } $，` x ^ 二 &amp;gt; 三 ` 表示叫詞，而且 ` 二 * x ` 表示輸出表達式。列表推導式，照一个確定的次序，共出結果（佮集合的成員無仝）； 並且列表推導式，伊一遍欲成做一个列表的成員，非生成這个列表的全體，對頭前進行的對一个無窮列表的成員的 Haskell 定義。&lt;br /&gt;
&lt;br /&gt;
==歷史==&lt;br /&gt;
&lt;br /&gt;
佇咧術語「列表推導式」欲用進前，伊就有關係的結構。集合論編程語言 SETL（一九六九年）， 是有類似列表推導式的一種形成構造。比如講，這个代碼列印對 ` 二 ` 到 ` N ` 所有的素數：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: ` ` `&lt;br /&gt;
print ( [n in [ 二 . . N] | forall m in { 二 . . n-一 } | n mod m &amp;gt; 零 ] ) ;&lt;br /&gt;
` ` `&lt;br /&gt;
&lt;br /&gt;
計算機代數系統 AXIOM（一九七三年）， 有處理串流的類似構造。&lt;br /&gt;
&lt;br /&gt;
頭一擺對這種構造的使用術語「推導式」，是佇一九七七年以後，Rod Burstall 和 John Darlington，用佇𪜶的函數式程式語言 NPL 欲描述內底。佇咧 David Turner 的回憶錄《函數式程式語言的一寡歷史》中，伊回想著：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: NPL 由 Burstall 用 POP 二實現，並予人 Darlington 用佇咧程序變換的工課（Burstall &amp;amp; Darlington 一千九百七十七）。 這个語言，是一坎、強類型（但無講蓋濟）、 純函數式、傳值調用的。伊閣有「集合表達式」比如講：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: ` ` `&lt;br /&gt;
setofeven ( X ) &amp;lt;=&amp;lt; : x  : x in X &amp;amp; even ( x ) : &amp;gt;&lt;br /&gt;
` ` `&lt;br /&gt;
&lt;br /&gt;
佇咧予術語「列表推導式」附加的跤註中，Turner 閣記矣：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: 我上頭仔叫「ZF 表達式」，參照矣 Zermelo-Frankel 集合論，Phil Wadler 鑄就了閣較好的術語「列表推導式」。&lt;br /&gt;
&lt;br /&gt;
Burstall 和 Darlington 關於著 NPL 的工課，佇一九八空年代影響了真濟函數式的程式語言，但並毋是全部攏包括列表推導式。其中上有影響的，是一九八五年發行的，Turner 的閣愛和人純函數式程式語言 Miranda。後來開發的標準慢性純函數式的語言 Haskell，包括著矣 Miranda 的足濟特徵，包括列表推導式。&lt;br /&gt;
&lt;br /&gt;
==Python 示例==&lt;br /&gt;
&lt;br /&gt;
Python 語言的列表推導式佮生成器表達式的語法示例：&lt;br /&gt;
&lt;br /&gt;
==推廣==&lt;br /&gt;
&lt;br /&gt;
===並行列表推導式===&lt;br /&gt;
&lt;br /&gt;
格拉斯哥 Haskell 編譯器，有一个擴展叫做「並行列表推導式」（嘛叫做拉鏈推導式）， 伊允准佇咧列表推導式語法內底，有真濟个獨立分支的限定符 ` &amp;lt;-`。用弄號 ` , ` 分隔的限定符，是依賴的（「 1875套的」）； 用管道符號 ` | ` 分隔的限定符，是並行求值的（這無牽連任何形式的多執行緒性，這隻意味著遮的分是予人搝鍊合併的）。&lt;br /&gt;
&lt;br /&gt;
Python 語言的語法示例：&lt;br /&gt;
&lt;br /&gt;
===單仔推導式===&lt;br /&gt;
&lt;br /&gt;
佇咧 Haskell 中，單仔推導式會列表推導式，推廣為適用佇啥物單。&lt;br /&gt;
&lt;br /&gt;
===集合推導式===&lt;br /&gt;
&lt;br /&gt;
Python 語言用於生成集合的語法示例：&lt;br /&gt;
&lt;br /&gt;
===字典推導式===&lt;br /&gt;
&lt;br /&gt;
Python 語言用於生做字典（關聯數組）的語法示例：&lt;br /&gt;
&lt;br /&gt;
==類似構造==&lt;br /&gt;
&lt;br /&gt;
===C + +===&lt;br /&gt;
&lt;br /&gt;
C + + 無直接支持列表推導的任何語言特性，但是運算符重載（比如講，重載 |，&amp;gt; &amp;gt;，&amp;gt; &amp;gt;=）已經成功用佇咧為著「1875入式」查詢領域特定語言提供表達式語法。抑是講，會用得使用 erase-remove idiom 來構造列表推導以選擇容器中的元素，並使用 STL 算法 for \ _ each 來轉換𪜶。&lt;br /&gt;
&lt;br /&gt;
==參見==&lt;br /&gt;
&lt;br /&gt;
* 程式語言的列表推導式較&lt;br /&gt;
&lt;br /&gt;
==延伸閱讀==&lt;br /&gt;
&lt;br /&gt;
* List Comprehension in The Free On-line Dictionary of Computing , Editor Denis Howe .&lt;br /&gt;
* Trinder , Phil . Comprehensions , a query notation for DBPLs . Proceedings of the third international workshop on Database programming languages : bulk types &amp;amp; persistent data , Nafplion , Greece : 五十五–六十八 . 一千九百九十二 .&lt;br /&gt;
* Wadler , Philip . Comprehending Monads . Proceedings of the 一千九百九十 ACM Conference on LISP and Functional Programming , Nice . 一千九百九十 [二千空二十一孵三鋪十六] .（原始內容存檔佇兩千空二十五十一鋪十一）.&lt;br /&gt;
* Wong , Limsoon . The Functional Guts of the Kleisli Query System . Proceedings of the fifth ACM SIGPLAN international conference on Functional programming . International Conference on Functional Programming : 一–十 . 兩千 .&lt;br /&gt;
&lt;br /&gt;
==參考文獻==&lt;br /&gt;
&lt;br /&gt;
==外部連結==&lt;br /&gt;
&lt;br /&gt;
* SQL-like set operations with list comprehension one-liners in the Python Cookbook&lt;br /&gt;
* Discussion on list comprehensions in Scheme and related constructs&lt;br /&gt;
* List Comprehensions across languages&lt;br /&gt;
&lt;br /&gt;
[[分類: 待校正]]&lt;/div&gt;</summary>
		<author><name>TaiwanTonguesApiRobot</name></author>
	</entry>
</feed>