Chez Scheme 第一章 介紹

第一章 介紹

本書介紹了Chez Scheme對(duì)Scheme [28] (R6RS) 的修訂報(bào)告6的擴(kuò)展。還包含其標(biāo)準(zhǔn)和Chez Scheme形式和過程的摘要俺猿,其中給出了每種形式的語法以及每個(gè)過程所接受的參數(shù)的數(shù)量和類型。 有關(guān)標(biāo)準(zhǔn)R6RS功能的詳細(xì)信息辽旋,請(qǐng)參見The Scheme Programming Language, 4th Edition (TSPL4) [11],或者Scheme的修訂6報(bào)告惭嚣。The Scheme Programming Language, 4th Edition還包含對(duì)Scheme語言的廣泛介紹以及眾多簡(jiǎn)短示例攒磨。

本文檔的大部分內(nèi)容也同樣適用于Petite Chez Scheme锋玲,它與完整的Chez Scheme系統(tǒng)完全兼容,但使用高速解釋器代替Chez Scheme的增量native-code編譯器盗迟。Chez Scheme編寫的程序在Petite Chez Scheme中可以運(yùn)行坤邪,只要它們不調(diào)用編譯器即可。實(shí)際上罚缕,Petite Chez Scheme與Chez Scheme的來源相同艇纺,除了編譯器來源之外,其他所有來源都包括在內(nèi)。第2.8節(jié)詳細(xì)討論了這種差別的影響黔衡。

本章的其余部分涵蓋Chez Scheme對(duì)Scheme語法的擴(kuò)展(第1.1節(jié))蚓聘,本書中用到的符號(hào)約定(第1.2節(jié)),系統(tǒng)自定義參數(shù)的用法(第1.3節(jié))以及在何處查找有關(guān)Chez Scheme的更多信息(第1.4節(jié))盟劫。

第2章介紹了如何使用Chez Scheme進(jìn)行程序開發(fā)夜牡,腳本編寫和應(yīng)用程序交付,以及如何使編譯器生成盡可能高效的代碼侣签。第3章介紹調(diào)試和對(duì)象檢查功能塘装。第4章介紹與不同進(jìn)程或用其他語言編寫的代碼進(jìn)行交互的功能。第5章介紹綁定形式影所。第6章介紹了控制結(jié)構(gòu)蹦肴。第7章介紹了對(duì)非數(shù)字對(duì)象的操作。而第8章介紹了各種數(shù)字操作型檀,包括有效的特定于類型的操作。第9章介紹了輸入/輸出操作和通用端口听盖,它們?cè)试S使用任意輸入/輸出語義定義端口胀溺。第10章討論如何將R6RS庫和頂層程序加載到Chez Scheme中,以及用于控制和跟蹤加載過程的各種功能皆看。第11章介紹語法擴(kuò)展和模塊仓坞。 第12章介紹了系統(tǒng)操作,例如與操作系統(tǒng)和自定義Chez Scheme用戶界面的交互操作腰吟。第13章介紹如何調(diào)用和控制存儲(chǔ)管理系統(tǒng)并描述守護(hù)者和弱對(duì)无埃。第14章介紹了Chez Scheme的表達(dá)式編輯器以及如何對(duì)其進(jìn)行自定義。第15章介紹構(gòu)成Chez Scheme本地線程系統(tǒng)接口的過程和語法形式毛雇。第16章介紹了各種兼容性功能嫉称。

本書的背面包含目錄,表格摘要和索引灵疮。出現(xiàn)在表格摘要中的頁碼和出現(xiàn)在索引中的斜體頁碼表示正式定義表格和程序的文本位置织阅。 表單和索引的摘要包括TSPL4中的條目,因此它們涵蓋了Chez Scheme功能的整個(gè)集合震捣。 TSPL4條目在頁碼上用“t”前綴標(biāo)記荔棉。

本書和TSPL4的在線版本和勘誤表可在www.scheme.com上找到。

致謝:Michael Adams蒿赢,Mike Ashley润樱,Carl Bruggeman,Bob Burger羡棵,Sam Daniel壹若,George Davidson,Matthew Flatt,Aziz Ghuloum舌稀,Bob Hieb啊犬,Andy Keep和Oscar Waddell都為Chez Scheme的發(fā)展做出了重要貢獻(xiàn)。Chez Scheme的表達(dá)式編輯器基于C.David Boyer從1989年到1994年開發(fā)的Scheme的命令行編輯器壁查。文件壓縮使用了Jean-loup Gailly和Mark Adler開發(fā)的zlib壓縮庫觉至。list和vector的排序例程的實(shí)現(xiàn)方式基于Olin Shiver的機(jī)會(huì)合并排序算法和實(shí)現(xiàn)。Michael Lenaghan對(duì)本書的早期草稿進(jìn)行了許多更正睡腿。本書中記錄的許多功能由當(dāng)前的Chez Scheme用戶建議语御,并且用戶的大量評(píng)論也導(dǎo)致了文本的改進(jìn)。 歡迎對(duì)Chez Scheme和本書的改進(jìn)提出其他建議席怪。

第1.1節(jié) Chez Scheme語法

Chez Scheme在對(duì)象(datum)級(jí)別和句法形式級(jí)別都擴(kuò)展了Scheme的語法应闯。Chez Scheme支持了對(duì)于字符的額外表示,其中包含非標(biāo)準(zhǔn)字符挂捻,浮點(diǎn)數(shù)和科學(xué)計(jì)數(shù)法碉纺,顯式長(zhǎng)度的vector,共享的和循環(huán)的structure刻撒,record骨田,box等等。這些擴(kuò)展將在下面描述声怔。形式級(jí)別擴(kuò)展將貫穿整本書态贤,并在《表單摘要》中進(jìn)行了總結(jié),該摘要也出現(xiàn)在本書的背面醋火。

Chez Scheme以多種方式擴(kuò)展標(biāo)識(shí)符的語法悠汽。首先,組成標(biāo)識(shí)符名稱的字符序列芥驳,可以以數(shù)字柿冲,句點(diǎn),加號(hào)和減號(hào)開頭兆旬,只要該序列不能解析為數(shù)字即可姻采。例如,0abc爵憎,+++和..在Chez Scheme中都是有效的標(biāo)識(shí)符慨亲。其次,單字符序列{ and }是標(biāo)識(shí)符宝鼓。 第三刑棵,包含任意字符的標(biāo)識(shí)符可以通過用\或|進(jìn)行轉(zhuǎn)義來打印。 \ 用于轉(zhuǎn)義單個(gè)字符('x'除外愚铡,因?yàn)閈x表示十六進(jìn)制標(biāo)量值的開始)蛉签,而 | 用于通過匹配 | 來使跟在其后的字符組轉(zhuǎn)義胡陪。例如 \||\| 是一個(gè)標(biāo)識(shí)符,具有兩個(gè)字符的名稱碍舍,由字符 | 組成柠座。|hit me! |是一個(gè)標(biāo)識(shí)符,其名稱包含空格片橡。

此外妈经,gensyms(第7.9節(jié))上用 #{and} 括號(hào)打印,括號(hào)中同時(shí)包含“漂亮”且“唯一”名稱捧书,如:#{g1426 e5g1c94g642dssw-a}吹泡。它們還可以使用僅包含#前綴的名字來打印,如:#:g1426经瓷。

從2到36的任意基數(shù)爆哑,可使用前綴#nr指定,其中 n 是基數(shù)舆吮。大小寫無關(guān)緊要揭朝,因此也可以使用#nR。與十六進(jìn)制數(shù)字一樣色冀,將從10到35的數(shù)字值指定為小寫或大寫字母字符潭袱。 例如,#36rZZ為35×36 + 35或1295呐伞。

Chez Scheme還允許以浮點(diǎn)數(shù)或科學(xué)計(jì)數(shù)法打印非十進(jìn)制數(shù)字敌卓。例如慎式,#o1.4等于1.5伶氢,而#b1e10等于4.0。數(shù)字優(yōu)先于指數(shù)特定符瘪吏,因此#x1e20僅僅是等于7712(四位數(shù)十六進(jìn)制數(shù))癣防。

除了標(biāo)準(zhǔn)命名符,#\alarm, #\backspace, #\delete, #\esc, #\linefeed, #\newline, #\page, #\return, #\space, 和 #\tab掌眠,Chez Scheme還識(shí)別#\bel, #\ls, #\nel, #\nul, #\rubout, and #\vt (or #\vtab)蕾盯。標(biāo)量值小于256的字符也可以用八進(jìn)制語法打印,該語法由前綴 #\ 和三個(gè)八進(jìn)制數(shù)字序列組成蓝丙。 例如级遭,#\000 等效于#\nul

Chez Scheme的fxvectorsfixnum vectors渺尘,跟vectors的打印方式類似挫鸽,但使用前綴 #vfx( 代替 #。 vector鸥跟,bytevectors和fxvectors丢郊,可以打印有明確的長(zhǎng)度前綴盔沫,并且當(dāng)指定了明確的長(zhǎng)度前綴時(shí),可以省略重復(fù)的尾隨元素枫匾。例如架诞,可以將 #(a b c) 打印為 #3(a b c),將包含全零的長(zhǎng)度為100的矢量打印為 #100(0)干茉。

Chez Scheme的box對(duì)象谴忧,打印時(shí)帶有#&前綴,如#&17是一個(gè)包含整數(shù)17的box等脂。

record#[type-name field ...] 的語法打印俏蛮,這里的符號(hào) type-namerecord的名字,field ... 表示 record 里的字段內(nèi)容上遥。

共享和循環(huán)的結(jié)構(gòu)可以使用圖形標(biāo)記和引用前綴 #n=#n# 進(jìn)行打印搏屑。 #n= 用于標(biāo)記一個(gè)輸入里的項(xiàng), #n# 用于引用標(biāo)記為n的項(xiàng)粉楚。例如辣恋,'(#1=(a) . #1#) 是一個(gè)pair,其 car 和 cdr 包含相同列表模软,#0=(a . #0#) 是一個(gè)循環(huán)列表伟骨,即它的 cdr 是它自己。

一個(gè) $primitive 形式可像 quote 一樣能縮寫燃异,使用前綴 #% 携狭。例如,#%car 等價(jià)于 ($primitive 2 car), #3%car 等價(jià)于 ($primitive 3 car)回俐。

Chez Scheme 的“文件結(jié)束對(duì)象”可打印為 #!eof逛腿。如果“文件結(jié)束對(duì)象”出現(xiàn)在正在加載的文件中的任意數(shù)據(jù)之外,就被看做是加載到文件末尾仅颇,并在這個(gè)點(diǎn)上停止加載单默。 因此,插入#!eof到文件之中忘瓦,可以方便追蹤加載時(shí)的錯(cuò)誤搁廓。

在弱對(duì)(點(diǎn)擊查看詳情)中的損壞指針表示為“broken weak pointer object”,打印為#!bwp耕皮。

除了標(biāo)準(zhǔn)分隔符(空白境蜕,開閉圓括號(hào),開閉方括號(hào)凌停,雙引號(hào)粱年,分號(hào)和 #),Chez Scheme還將開括號(hào)苦锨,單引號(hào)逼泣,后引號(hào)和逗號(hào)視為分隔符趴泌。

在輸入流中出現(xiàn) #!r6rs 注釋指令后,上述的Chez Scheme的詞法擴(kuò)展將被禁用拉庶,除非在之前出現(xiàn) #!chezscheme 注釋指令嗜憔。每個(gè)通過 import 隱式加載的庫,以及每個(gè)通過 --program 命令行選項(xiàng)的RNRS頂層程序或 load-program 程序氏仗,都被視為隱式以 #!r6rs 注釋指令為開頭吉捶。

根據(jù)修訂版報(bào)告6的要求,符號(hào)和字符名稱的大小寫通常很重要皆尔。在相同的輸入流里呐舔,#!fold-case 注釋指令將名稱設(shè)置為小寫,就像被 string-foldcase 處理過一樣慷蠕,除非之前出現(xiàn) #!no-fold-case 珊拼。沒有出現(xiàn)任何指令時(shí),且 參數(shù) case-sensitive 被設(shè)置為 #f 時(shí)流炕,名字也是小寫的澎现。

通過 write, put-datum, pretty-print, 和 format ~s 選項(xiàng),printer 總是用標(biāo)準(zhǔn)語法每辟,對(duì)標(biāo)準(zhǔn)的修訂報(bào)告6的對(duì)象進(jìn)行打印剑辫。除非通過設(shè)置某個(gè)打印參數(shù),來改變默認(rèn)行為渠欺。例如妹蔽,上述的Chez Scheme的擴(kuò)展標(biāo)識(shí)符語法的符號(hào),printer 將使用的十六進(jìn)制標(biāo)量值轉(zhuǎn)義序列來打印挠将,除非 print-extended-identifiers 被設(shè)置為 true胳岂。同樣地,printer 不會(huì)打印顯式長(zhǎng)度或省略尾部的重復(fù)元素捐名,除非設(shè)置 參數(shù)print-vector-length 為 true旦万。

第1.2節(jié) 符號(hào)約定

本書基本上遵循與The Scheme Programming Language 第4版 相同的符號(hào)約定闹击。下面重申這些約定镶蹋,并附帶Chez Scheme特定的注釋。

當(dāng)說一個(gè)過程或句法形式產(chǎn)生的值是 未定義 時(shí)赏半,該形式或過程或許返回任意數(shù)量的值贺归,每個(gè)都可以是任意 Scheme 對(duì)象。只要返回結(jié)果是 未定義 断箫,Chez Scheme 通常返回唯一一個(gè) void 對(duì)象(參見 void)拂酣;但是,請(qǐng)避免參考這個(gè)對(duì)象仲义,尤其是當(dāng)你的程序要移植到另一個(gè)Scheme實(shí)現(xiàn)時(shí)婶熬。Chez Scheme 的 waiter (讀-求值-打印循環(huán)剑勾,REPL) 會(huì)禁止打印空對(duì)象。

本書使用“必須”和“應(yīng)該”此類詞語來描述程序的條件赵颅,例如調(diào)用 vector-ref 的條件是提供一個(gè)小于vector長(zhǎng)度的下標(biāo)虽另。如果使用“應(yīng)該”一詞,則意味著該條件由實(shí)現(xiàn)強(qiáng)制執(zhí)行饺谬,即拋出一個(gè)異常捂刺,該異常通常是條件類型 &assertion。如果使用了“應(yīng)該”一詞募寨,那么異匙逭梗可能會(huì)也可能不會(huì)被拋出。如果未拋出拔鹰,該程序的行為是未定義的仪缸。短語“語法沖突”用于描述程序格式錯(cuò)誤的情況。檢測(cè)語法沖突先于程序執(zhí)行列肢。當(dāng)檢測(cè)到語法沖突時(shí)腹殿,會(huì)拋出 &syntax 類型異常,并停止執(zhí)行例书。

顯示在屏幕字體上的 Scheme 對(duì)象锣尉,就像是在鍵盤上鍵入的一樣。這包括標(biāo)識(shí)符决采,常量對(duì)象自沧,括號(hào) Scheme 表達(dá)式,和整個(gè)程序树瞭。斜體字體用于在句法形式的描述中襯托語法變量拇厢,在過程中描述中襯托參數(shù)。當(dāng)一個(gè)技術(shù)用語首次出現(xiàn)時(shí)晒喷,也用斜體字來作襯孝偎。標(biāo)識(shí)符的首字母通常不會(huì)大寫,即使出現(xiàn)在句首也不會(huì)大寫凉敲。這對(duì)寫作斜體字的句法變量來說也是一樣的衣盾。

在句法形式或過程的描述中,用模版來顯示了句法形式或過程的應(yīng)用爷抓。 語法關(guān)鍵字或過程名稱以打字機(jī)字體給出势决,括號(hào)也是如此。語法或變量的其余部分以斜體顯示蓝撇,其使用的名稱暗含了語法形式或過程所期望的表達(dá)式或變量的類型果复。省略號(hào)用于聲明子表達(dá)式或參數(shù)出現(xiàn)零次或多次。

第1.3節(jié) 參數(shù)

Chez Scheme的所有系統(tǒng)定制都是通過參數(shù)來完成渤昌。一個(gè)參數(shù)是一個(gè)封裝著內(nèi)部狀態(tài)變量的過程虽抄。當(dāng)不帶參數(shù)調(diào)用此過程時(shí)走搁,它返回封裝的變量值。如果它的參數(shù)不正確迈窟,則可能會(huì)引發(fā)異常朱盐,也可能會(huì)以某種方式過濾該參數(shù)。

運(yùn)行在Chez Scheme的程序可能會(huì)創(chuàng)建和使用新的參數(shù)菠隆。使用參數(shù)而不是全局變量進(jìn)行程序自定義有兩個(gè)原因:首先兵琳,無意中重新定義一個(gè)自定義變量,會(huì)導(dǎo)致意外的問題骇径,而無意中重新定義參數(shù)只會(huì)使參數(shù)不可訪問躯肌。例如,在Chez Scheme的早期版本中破衔,一個(gè)程序?yàn)榱俗约旱哪繕?biāo)而定義了 *print-level*清女,對(duì)Scheme對(duì)象的打印產(chǎn)生了意想不到的影響。而為了自己目標(biāo)而定義 print-level 晰筛,只會(huì)失去改變打印機(jī)行為的能力嫡丙。當(dāng)然,一個(gè)意外調(diào)用 print-level 的程序依然會(huì)以意想不到的方式影響系統(tǒng)读第,但這種情況不太可能發(fā)生曙博,并且只能在不正確的程序中發(fā)生。

其次怜瞒,當(dāng)“賦值”完成時(shí)父泳,參數(shù)的無效值可以立即檢測(cè)并拒絕,而不是在第一次使用時(shí)吴汪,這時(shí)撤銷和恢復(fù)舊值為時(shí)已晚惠窄。例如,將 *print-level* 賦值為 -1 漾橙,該錯(cuò)誤行為不會(huì)被捕獲杆融,直到第一次調(diào)用 writepretty-print 時(shí)已為時(shí)已晚。而嘗試將 -1 賦值給參數(shù) print-level 霜运,即 (print-level -1) 脾歇,在實(shí)際進(jìn)行更改之前立即被標(biāo)記為錯(cuò)誤。

系統(tǒng)內(nèi)置參數(shù)的介紹將貫穿本書的不同章節(jié)觉渴,并在本書背面的“表格摘要”中列出了其他語法格式和過程介劫。在Chez Scheme的線程版本中徽惋,標(biāo)記為“線程參數(shù)”的參數(shù)具有每個(gè)線程的值案淋,而標(biāo)記為“全局參數(shù)”的參數(shù)的值由所有線程共享。 Chez Scheme的非線程版本不區(qū)分線程參數(shù)和全局參數(shù)险绘。有關(guān)創(chuàng)建和操作參數(shù)的更多信息踢京,請(qǐng)參見 12.13節(jié)15.7節(jié)誉碴。

第1.4節(jié) 更多信息

下面列出的文章和技術(shù)報(bào)告記錄了Chez Scheme的各種功能及其實(shí)現(xiàn):

  • 句法抽象 [14, 8, 17]
  • 模塊 [32]
  • 庫 [21]
  • 儲(chǔ)存管理[12, 13]
  • 線程[10]
  • 多返回值[2]
  • 可選參數(shù)[16]
  • 延續(xù)[7, 25, 3]
  • eq? 哈希表[20]
  • 內(nèi)部定義,letrec 和 letrec* [33, 22]
  • equal? [1]
  • 引擎[15]
  • 浮點(diǎn)打印[4]
  • 代碼生成[18]
  • 寄存器分配[6]
  • 內(nèi)聯(lián)過程[31]
  • 分析[5]
  • 實(shí)現(xiàn)的歷史[9]

這些出版物的摘要和電子版本的鏈接可從以下網(wǎng)址獲得:http://www.cs.indiana.edu/chezscheme/pubs/瓣距。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末黔帕,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蹈丸,更是在濱河造成了極大的恐慌成黄,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逻杖,死亡現(xiàn)場(chǎng)離奇詭異奋岁,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)荸百,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門闻伶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人够话,你說我怎么就攤上這事蓝翰。” “怎么了女嘲?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵畜份,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我欣尼,道長(zhǎng)漂坏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任媒至,我火速辦了婚禮顶别,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拒啰。我一直安慰自己驯绎,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布谋旦。 她就那樣靜靜地躺著剩失,像睡著了一般。 火紅的嫁衣襯著肌膚如雪册着。 梳的紋絲不亂的頭發(fā)上拴孤,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音甲捏,去河邊找鬼演熟。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的芒粹。 我是一名探鬼主播兄纺,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼化漆!你這毒婦竟也來了估脆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤座云,失蹤者是張志新(化名)和其女友劉穎疙赠,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體朦拖,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡棺聊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了贞谓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片限佩。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖裸弦,靈堂內(nèi)的尸體忽然破棺而出祟同,到底是詐尸還是另有隱情,我是刑警寧澤理疙,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布晕城,位于F島的核電站,受9級(jí)特大地震影響窖贤,放射性物質(zhì)發(fā)生泄漏砖顷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一赃梧、第九天 我趴在偏房一處隱蔽的房頂上張望滤蝠。 院中可真熱鬧,春花似錦授嘀、人聲如沸物咳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽览闰。三九已至,卻和暖如春巷折,著一層夾襖步出監(jiān)牢的瞬間压鉴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工锻拘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留油吭,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像上鞠,于是被迫代替她去往敵國(guó)和親际邻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子芯丧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345