锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 涓嬮潰錛屾垜鎯沖垪鍑轟竴浜涙垜蹇冧腑鎵鎯充笌澶у鍒嗕韓錛屼篃甯屾湜寰楀埌澶у鐨勫垎浜?/p>
絎竴涓棶棰樻槸鍏充簬蹇犺瘹 褰撴垜娌′簡淇濆簳,鎵嶇獊鐒跺彂鐜拌繖涓笘鐣屼笂娌℃湁浠涔堜簨鎯呮槸鍙互淇濊瘉鐨?鍊樿嫢鏈夌殑璇濓紝閭e氨鍙湁浣犱俊蹇點傛垜灝嗗惛鍙栬繖嬈$殑緇忛獙鍜屾暀璁紝韙忚笍瀹炲疄鐨勭戶緇幓瀵繪壘鎴戠殑姊︺?/p>
涓婃枃宸茬粡璇翠簡錛屾垜鏄竴涓竴騫寸鑱?嬈$敺銆傚浜庡叕鍙革紝鎴戝崄鍒嗘姳姝夈備絾鍑壇蹇冩潵璇達紝瀵逛簬姣忎竴嬈$鑱屾垜閮芥妸鑷繁鎵鏈夌殑宸ヤ綔濡ュ杽騫朵笖璐熻矗浠葷殑鍋氫簡浜ゆ帴銆傛垜涔熶笉鎯沖鑷繁鎵鍋氱殑涓浜涗簨鎯呭仛浠涔堣В閲娿傛垜涔熸繁鐭ヤ竴騫寸鑱?嬈¤繖縐嶅伐浣滅姸鎬佸茍涓嶆槸涓涓伐浣滆呭簲璇ユ湁鐨勩傛墍騫哥殑鏄垜鏈潵灝辮鍒掑湪姣曚笟鍚庣粨鏉熻繖縐嶄笉姝e父鐨勭姸鎬侊紝鍥犳鎺ヤ笅鏉ヨ鎵劇殑宸ヤ綔鎴戝皢浼氶暱鏈熺殑鍋氫笅鍗堛備笉鐭ラ亾鏈夋病鏈夋湅鍙嬫浘緇忔湁榪囪窡鎴戜竴鏍風殑鐘舵佹垨緇忓巻錛屽彲鍚﹁璇翠綘鏄浣曞害榪囬偅孌墊椂鏈熺殑鍛紵
鐒跺悗灝卞紩鍑轟簡絎簩涓棶棰橈紝璇曠敤鏈?br> 涓鐩翠互鏉ワ紝鍦ㄦ垜鐨勭悊瑙d腑錛岃瘯鐢ㄦ湡搴旇鏄憳宸ヤ笌鍏徃鍙屾柟鐨勪竴涓瘯鐢ㄣ傚洜涓哄湪榪涘叆涓瀹跺叕鍙鎬箣鍓嶏紝浣犲彲浠ラ氳繃澶栫晫鐨勬秷鎭互鍙婂叕鍙稿唴閮ㄥ憳宸ョ殑娑堟伅鏉ヤ簡瑙e叕鍙革紝浣嗘垜瑙夊緱鐪熸鑳藉褰卞搷鍒頒綘鐨勮繕鏄綘鐨勪翰韜粡鍘嗐傛墍浠ュ湪鎴戠湅鏉ヨ瘯鐢ㄦ湡灝辨槸鎻愪緵緇欏弻鏂硅繖涔堜竴涓満浼氥傞潰璇曠殑鏃跺欙紝hr涔熼棶浜嗕竴涓繖涓浉鍏崇殑闂錛屽ス闂垜鏄惁鑳藉紜榪欏鍏徃灝辨槸鎴戞兂瑕佺殑閭g鐜銆傛垜鐨勫洖絳旀槸涓嶈兘銆傛湅鍙嬩滑錛屼綘浠張浼氬仛鍑哄浣曠殑鍥炵瓟錛?br> 鍐嶆帴涓嬫潵灝辨槸鐜鐨勯棶棰樹簡錛屽叾瀹炶繖鍙兘涔熸槸鎴戣鎷掔殑鏈涓昏鍘熷洜
hr闂?浣犵殑榪欏嚑嬈″叆鑱岋紝鍙戠幇涓嶅悎閫傦紝鐒跺悗紱昏亴涔嬪悗錛屼綘鏈夋病鏈夋兂榪囪嚜韜殑鍘熷洜錛熶綘鏈緇堟墍鎯寵鐨勭幆澧冪┒绔熸槸浠涔堬紵鍏跺疄榪欎釜闂鎴戠湡鎯寵繃錛屼絾鏄仐鎲劇殑鏄垜騫舵病鏈変竴涓竻鏅扮殑姒傛嫭錛屾垜涓鐩村己璋冪殑涓涓瘝鏄鏉撅紝榪欎釜璇嶅お瀹芥硾浜嗭紝鑰屼笖瀵逛簬涓嶅悓鐨勫叕鍙鎬笉鍚岀殑浜虹殑鐞嗚В涔熸槸涓嶅悓銆傛垜鍓嶅嚑澶╂浘緇忔伓浣滃墽鑸殑鎶婅嚜宸辯殑綆鍘嗗悕縐版敼涓轟簡錛屾垜鏄竴涓ⅵ鎯?0鐐逛笂鐝敺錛屾垜鏄竴涓ⅵ鎯沖彲浠ラ殢鏃舵墦娓告垙鐢鳳紝濡傛灉浣犺兘澶熺悊瑙o紝闅忔椂鑱旂郴鎴戙傛壙璁わ紝鎴戜篃鐭ラ亾鎴戠殑榪欑姊︽兂騫肩鐨勫彲絎戯紝鎴戜篃浠庢湭鎯寵繃鍝鍏徃鑳藉鐪熺殑鍘繪弧瓚寵繖鏍峰鏉劇殑鏉′歡銆備絾榪欎緷鐒舵槸鎴戠殑姊︽兂錛屾垜浠嶇劧娓存湜鑳藉鏈変竴瀹跺叕鍙稿幓鍔姏鐨勬彁渚涜繖縐嶅鏉撅紝璁╂垜浠庡績搴曟劅鍙楀埌鑷敱銆傞偅涔堬紝鏈嬪弸錛屼綘鍙堝浣曠湅寰呬竴涓狿rogramer鎵闇瑕佺殑鐜鍛紵
浣滆?Slava Akhmechet
璇戣?Alec Jang
鍑哄: http://www.defmacro.org/ramblings/lisp.html
綆浠?br>
鏈鍒濆湪web鐨勬煇浜涜钀藉伓鐒剁湅鍒版湁浜鴻禐緹嶭isp鏃? 鎴戦偅鏃跺凡緇忔槸涓涓鏈夌粡楠岀殑紼嬪簭鍛樸?br>鍦ㄦ垜鐨勫飽鍘嗕笂, 鎺屾彙鐨勮璦鑼冨洿鐩稿綋騫挎硾, 璞++, Java, C#涓繪祦璇█絳夌瓑閮戒笉鍦ㄨ瘽涓?
鎴戣寰楁垜宸笉澶氱煡閬撴墍鏈夌殑鏈夊叧緙栫▼璇█鐨勪簨鎯呫傚寰呯紪紼嬭璦鐨勯棶棰樹笂, 鎴戣寰楄嚜宸變笉
澶細閬囧埌浠涔堝ぇ闂銆傚叾瀹炴垜澶ч敊鐗歸敊浜嗐?br>
鎴戣瘯鐫瀛︿簡涓涓婰isp, 緇撴灉椹笂灝辨挒浜嗗銆傛垜琚偅浜涜寖渚嬩唬鐮佸悡鍧忎簡銆傛垜鎯沖緢澶氬垵嬈℃帴瑙?br>Lisp璇█鐨勪漢, 涓瀹氫篃鏈夎繃綾諱技鐨勬劅鍙椼侺isp鐨勮娉曞お嬈′簡銆備竴涓璦鐨勫彂鏄庝漢, 灞呯劧涓?br>鑲敤蹇冨紕鍑轟竴濂楁紓浜殑璇硶, 閭h皝榪樹細鎰挎剰瀛﹀畠銆傚弽姝? 鎴戞槸紜‘瀹炲疄琚偅浜涢毦鐪嬬殑鏃犳暟
鐨勬嫭鍙鋒悶钂欎簡銆?br>
鍥炶繃紲炴潵涔嬪悗, 鎴戝拰Lisp紺懼尯鐨勯偅浼欎漢浜よ皥, 璇夎鎴戠殑娌撫蹇冩儏銆傜粨鏋? 绔嬮┈灝辨湁涓澶у
鐞嗚鐮歌繃鏉? 榪欏鐞嗚鍦↙isp紺懼尯澶勫鍙, 鍑犳垚鎯緥銆傛瘮濡傝: Lisp鐨勬嫭鍙峰彧鏄〃闈㈢幇
璞? Lisp鐨勪唬鐮佸拰鏁版嵁鐨勮〃杈炬柟寮忔病鏈夊樊鍒? 鑰屼笖姣擷ML璇硶楂樻槑璁稿, 鎵浠ユ湁鏃犵┓鐨勫ソ
澶? Lisp鏈夊己澶ф棤姣旂殑鍏冭璦鑳藉姏, 紼嬪簭鍛樺彲浠ュ啓鍑鴻嚜鎴戠淮鎶ょ殑浠g爜; Lisp鍙互鍒涢犲嚭閽?br>瀵圭壒瀹氬簲鐢ㄧ殑璇█瀛愰泦; Lisp鐨勮繍琛屾椂鍜岀紪璇戞椂娌℃湁鏄庣‘鐨勫垎鐣? 絳夌瓑, 絳夌瓑, 絳夌瓑銆傝繖
涔堥暱鐨勮禐緹庤瘝铏界劧鐪嬭搗鏉ョ浉褰撳姩浜? 涓嶈繃瀵規垜姣棤鎰忎箟銆傛病浜鴻兘緇欐垜婕旂ず榪欎簺涓滆タ鏄浣?br>搴旂敤鐨? 鍥犱負榪欎簺涓滆タ涓鑸潵璇村彧鏈夊湪澶у瀷緋葷粺鎵嶄細鐢ㄥ埌銆傛垜浜夎京璇? 榪欎簺涓滆タ浼犵粺璇█
涓鏍峰姙寰楀埌銆傚湪鍜屽埆浜轟簤璁轟簡鏁頒釜灝忔椂涔嬪悗, 鎴戞渶緇堣繕鏄斁寮冧簡瀛isp鐨勫康澶淬備負浠涔堣
鑺辮垂鍑犱釜鏈堢殑鏃墮棿瀛︿範璇硶榪欎箞闅劇湅鐨勮璦鍛? 榪欑璇█鐨勬蹇佃繖涔堟櫐娑? 鍙堟病浠涔堝ソ鎳?br>鐨勪緥瀛愩備篃璁歌繖璇█涓嶆槸璇ユ垜榪欐牱鐨勪漢瀛︾殑銆?br>
鍑犱釜鏈堟潵, 鎴戞壙鍙楃潃榪欎簺Lisp杈╂姢澹鎴戝績鐏電殑閲嶅帇銆傛垜涓搴﹂櫡鍏ヤ簡鍥版儜銆傛垜璁よ瘑涓浜涚粷
欏惰仾鏄庣殑浜? 鎴戝浠栦滑鐩稿綋灝婃暚, 鎴戠湅鍒頒粬浠Lisp鐨勮禐緹庤揪鍒頒簡瀹楁暀鑸殑楂樺害銆傝繖灝辨槸
璇? Lisp涓竴瀹氭湁鏌愮紲炵鐨勪笢瑗垮瓨鍦? 鎴戜笉鑳藉繊鍙楄嚜宸卞姝ょ殑鏃犵煡, 濂藉蹇冨拰姹傜煡嬈叉渶
緇堜笉鍙亸鍒躲傛垜浜庢槸鍜揣鐗欏叧鍩嬪ご瀛︿範Lisp, 緇忚繃鍑犱釜鏈堢殑鏃墮棿璐瑰姴蹇冨姏鐨勭粌涔? 緇堜簬,
鎴戠湅鍒頒簡閭f棤絀鋒棤灝界殑娉夋按鐨勬簮澶淬傚湪緇忚繃鑴辮儙鎹㈤鐨勭(緇冧箣鍚? 鍦ㄧ粡榪囦竷閲嶅湴鐙辯殑鐓庣啲
涔嬪悗, 緇堜簬, 鎴戞槑鐧戒簡銆?br>
欏挎偀鍦ㄧ獊鐒朵箣闂存潵涓淬傛浘緇忚澶氭, 鎴戝惉鍒板埆浜哄紩鐢ㄩ浄钂欏痙(璇戣呮敞: 璁烘枃<<澶ф暀鍫傚拰甯?br>闆?gt;>鐨勪綔鑰? 钁楀悕鐨勯粦瀹㈢ぞ鍖虹悊璁哄)鐨勮瘽: "Lisp璇█鍊煎緱瀛︿範銆傚綋浣犲浼歀isp涔嬪悗, 浣?br>浼氭嫢鏈夋繁鍒葷殑浣撻獙銆傚氨綆椾綘騫沖父騫朵笉鐢↙isp緙栫▼, 瀹冧篃浼氫嬌浣犳垚涓烘洿鍔犱紭縐鐨勭▼搴忓憳"銆?br>榪囧幓, 鎴戞牴鏈笉鎳傝繖浜涜瘽鐨勫惈涔? 鎴戜篃涓嶇浉淇¤繖鏄湡鐨勩傚彲鏄幇鍦ㄦ垜鎳傚緱浜嗐傝繖浜涜瘽钑村惈
鐨勭湡鐞嗚繙榪滆秴榪囨垜榪囧幓鐨勬兂鍍忋傛垜鍐呭績浣撲細鍒頒竴縐嶇鍦g殑鎯呮劅, 涓鐬棿鐨勯】鎮? 鍑犱箮浣挎垜
瀵圭數鑴戠瀛︾殑瑙傚康鍙戠敓浜嗘牴鏈殑鏀瑰彉銆?br>
欏挎偀鐨勯偅涓鍒? 鎴戞垚浜哃isp鐨勫磭鎷滆呫傛垜浣撻獙鍒頒簡瀹楁暀澶у笀鐨勬劅鍙? 涓瀹氳鎶婃垜鐨勭煡璇嗕紶
甯冨紑鏉? 鑷沖皯瑕佽10涓糠澶辯殑鐏甸瓊寰楀埌鎷晳銆傛寜鐓ч氬父鐨勫姙娉? 鎴戞妸榪欎簺閬撶悊(灝辨槸鍒氬紑
濮嬪埆浜虹牳榪囨潵鐨勯偅涓濂? 涓嶈繃鐜板湪鎴戞槑鐧戒簡鐪熷疄鐨勫惈涔?鍛婅瘔鏃佷漢銆傜粨鏋滃お浠や漢澶辨湜浜?
鍙湁灝戞暟鍑犱釜浜哄湪鎴戝潥鎸佷箣涓? 鍙戠敓浜嗕竴鐐瑰叴瓚? 浣嗘槸浠呬粎鐪嬩簡鍑犵溂Lisp浠g爜, 浠栦滑灝遍
鍗翠簡銆傜収榪欐牱鐨勫姙娉? 涔熻璐規暟騫村姛澶兘閫犲氨浜嗗嚑涓狶isp榪? 浣嗘垜瑙夊緱榪欐牱鐨勭粨鏋滃お宸己
浜烘剰浜? 鎴戝緱鎯充竴濂楁湁鏇村ソ鐨勫姙娉曘?br>
鎴戞繁鍏ュ湴鎬濊冧簡榪欎釜闂銆傛槸涓嶆槸Lisp鏈変粈涔堝緢鑹版繁鐨勪笢瑗? 浠ゅ緱閭d箞澶氳佺粌鐨勭▼搴忓憳閮?br>涓嶈兘棰嗕細? 涓嶆槸, 娌℃湁浠諱綍緇濆鑹版繁鐨勪笢瑗褲傚洜涓烘垜鑳藉紕鎳? 鎴戠浉淇″叾浠栦漢涔熶竴瀹氳兘銆傞偅
涔堥棶棰樺嚭鍦ㄩ偅閲? 鍚庢潵鎴戠粓浜庢壘鍒頒簡絳旀銆傛垜鐨勭粨璁哄氨鏄? 鍑℃槸鏁欎漢瀛﹂珮綰ф蹇? 涓瀹氳
浠庝粬宸茬粡鎳傚緱鐨勪笢瑗垮紑濮嬨傚鏋滃涔犺繃紼嬪緢鏈夎叮, 瀛︿範鐨勫唴瀹硅〃杈懼緱寰堟伆褰? 鏂版蹇靛氨浼?br>鍙樺緱鐩稿綋鐩磋銆傝繖灝辨槸鎴戠殑絳旀銆傛墍璋撳厓緙栫▼, 鎵璋撴暟鎹拰浠g爜褰㈠紡鍚堜竴, 鎵璋撹嚜淇敼浠?br>鐮? 鎵璋撶壒瀹氬簲鐢ㄧ殑瀛愯璦, 鎵鏈夎繖浜涙蹇墊牴鏈氨鏄悓鏃忔蹇? 褰兼浜掍負瑙i噴, 鑲畾瓚婅
瓚婁笉鏄庣櫧銆傝繕鏄粠瀹為檯鐨勪緥瀛愬嚭鍙戞渶鏈夌敤銆?br>
鎴戞妸鎴戠殑鎯蟲硶璇寸粰Lisp紼嬪簭鍛樺惉, 閬埌浜嗕粬浠殑鍙嶅銆?榪欎簺涓滆タ鏈韓褰撶劧涓嶅彲鑳界敤鐔熸倝
鐨勭煡璇嗘潵瑙i噴, 榪欎簺姒傚康瀹屽叏涓庝紬涓嶅悓, 浣犱笉鍙兘鍦ㄥ埆浜哄凡鏈夌殑緇忛獙閲屾壘鍒扮被浼肩殑涓滆タ",
鍙槸鎴戣涓鴻繖浜涢兘鏄亖璇嶃備粬浠張鍙嶉棶鎴? "浣犺嚜宸變負鍟ヤ笉璇曚竴涓?" 濂藉惂, 鎴戞潵璇曚竴涓嬨?br>榪欑瘒鏂囩珷灝辨槸鎴戝皾璇曠殑緇撴灉銆傛垜瑕佺敤鐔熸倝鐨勭洿瑙傜殑鏂規硶鏉ヨВ閲奓isp, 鎴戝笇鏈涙湁鍕囨皵鐨勪漢璇?br>瀹屽畠, 鎷挎澂楗枡, 娣卞懠鍚鎬竴涓? 鍑嗗琚悶寰楁檿澶磋漿鍚戙傛潵鍚? 鎰夸綘鑾峰緱澶ц兘銆?br>
閲嶆柊瀹¤XML
鍗冮噷涔嬭濮嬩簬瓚充笅銆傝鎴戜滑鐨勭涓姝ヤ粠XML寮濮嬨傚彲鏄疿ML宸茬粡璇村緱鏇村鐨勪簡, 榪樿兘鏈変粈涔?br>鏂版剰鎬濆彲璇村憿? 鏈夌殑銆俋ML鑷韓铏界劧璋堣皥涓嶄笂鏈夎叮, 浣嗘槸XML鍜孡isp鐨勫叧緋誨嵈鐩稿綋鏈夎叮銆?br>XML鍜孡isp鐨勬蹇墊湁鐫鎯婁漢鐨勭浉浼間箣澶勩俋ML鏄垜浠氬悜鐞嗚ВLisp鐨勬ˉ姊併傚ソ鍚? 鎴戜滑涓旀妸
XML褰撲綔媧婚┈鍖匯傝鎴戜滑鎷垮ソ鎵嬫潠, 瀵筙ML鐨勬棤浜烘秹鍙婄殑鑽掑師鍦板甫浣滀竴鐣帰闄┿傛垜浠浠庝竴
涓叏鏂扮殑瑙嗚鏉ヨ冨療榪欎釜棰樼洰銆?br>
琛ㄩ潰涓婄湅, XML鏄竴縐嶆爣鍑嗗寲璇硶, 瀹冧互閫傚悎浜洪槄璇葷殑鏍煎紡鏉ヨ〃杈句換鎰忕殑灞傛鍖栨暟鎹?br>(hirearchical data)銆傝薄浠誨姟琛?to-do list), 緗戦〉, 鐥呭巻, 姹借濺淇濋櫓鍗? 閰嶇疆鏂囦歡絳?br>絳? 閮芥槸XML鐢ㄦ鐨勫湴鏂廣傛瘮濡傛垜浠嬁浠誨姟琛ㄥ仛渚嬪瓙:
<todo name="housework">
<item priority="high">Clean the house.</item>
<item priority="medium">Wash the dishes.</item>
<item priority="medium">Buy more soap.</item>
</todo>
瑙f瀽榪欐鏁版嵁鏃朵細鍙戠敓浠涔堟儏鍐? 瑙f瀽涔嬪悗鐨勬暟鎹湪鍐呭瓨涓庢牱琛ㄧず? 鏄劇劧, 鐢ㄦ爲鏉ヨ〃紺?br>榪欑灞傛鍖栨暟鎹槸寰堟伆褰撶殑銆傝鍒板簳, XML榪欑姣旇緝瀹規槗闃呰鐨勬暟鎹牸寮? 灝辨槸鏍戝瀷緇撴瀯
鏁版嵁緇忚繃搴忓垪鍖栦箣鍚庣殑緇撴灉銆備換浣曞彲浠ョ敤鏍戞潵琛ㄧず鐨勬暟鎹? 鍚屾牱鍙互鐢╔ML鏉ヨ〃紺? 鍙嶄箣
浜︾劧銆傚笇鏈涗綘鑳芥噦寰楄繖涓鐐? 榪欏涓嬮潰鐨勫唴瀹規瀬鍏墮噸瑕併?br>
鍐嶈繘涓姝ャ傝繕鏈変粈涔堢被鍨嬬殑鏁版嵁涔熷父鐢ㄦ爲鏉ヨ〃紺? 鏃犵枒鍒楄〃(list)涔熸槸涓縐嶃備笂榪囩紪璇戣
鍚? 榪樻ā妯$硦緋婅寰椾竴鐐瑰惂? 婧愪唬鐮佸湪瑙f瀽涔嬪悗涔熸槸鐢ㄦ爲緇撴瀯鏉ュ瓨鏀劇殑, 浠諱綍緙栬瘧紼嬪簭閮?br>浼氭妸婧愪唬鐮佽В鏋愭垚涓媯墊娊璞¤娉曟爲, 榪欐牱鐨勮〃紺烘硶寰堟伆褰? 鍥犱負婧愪唬鐮佸氨鏄眰嬈$粨鏋勭殑:
鍑芥暟鍖呭惈鍙傛暟鍜屼唬鐮佸潡, 浠g爜蹇寘鍚〃杈懼紡鍜岃鍙? 璇彞鍖呭惈鍙橀噺鍜岃繍綆楃絳夌瓑銆?br>
鎴戜滑宸茬粡鐭ラ亾, 浠諱綍鏍戠粨鏋勯兘鍙互杞昏屾槗涓劇殑鍐欐垚XML, 鑰屼換浣曚唬鐮侀兘浼氳В鏋愭垚鏍? 鍥犳,
浠諱綍浠g爜閮藉彲浠ヨ漿鎹㈡垚XML, 瀵逛笉瀵? 鎴戜婦涓緥瀛? 璇風湅涓嬮潰鐨勫嚱鏁?
int add(int arg1, int arg2)
{
return arg1+arg2;
}
鑳芥妸榪欎釜鍑芥暟鍙樻垚瀵圭瓑鐨刋ML鏍煎紡鍚? 褰撶劧鍙互銆傛垜浠彲浠ョ敤寰堝縐嶆柟寮忓仛鍒? 涓嬮潰鏄叾
涓殑涓縐? 鍗佸垎綆鍗?
<define-function return-type="int" name="add">
<arguments>
<argument type="int">arg1</argument>
<argument type="int">arg2</argument>
</arguments>
<body>
<return>
<add value1="arg1" value2="arg2" />
</return>
</body>
</define>
榪欎釜渚嬪瓙闈炲父綆鍗? 鐢ㄥ摢縐嶈璦鏉ュ仛閮戒笉浼氭湁澶ぇ闂銆傛垜浠彲浠ユ妸浠諱綍紼嬪簭鐮佽漿鎴怷ML,
涔熷彲浠ユ妸XML杞洖鍒板師鏉ョ殑紼嬪簭鐮併傛垜浠彲浠ュ啓涓涓漿鎹㈠櫒, 鎶奐ava浠g爜杞垚XML, 鍙︿竴涓?br>杞崲鍣ㄦ妸XML杞洖鍒癑ava銆備竴鏍風殑閬撶悊, 榪欑鎵嬫涔熷彲浠ョ敤鏉ュ浠楥++(榪欐牱鍋氳窡鍙戠柉宸笉
澶氫箞銆傚彲鏄殑紜湁浜哄湪鍋? 鐪嬬湅GCC-XML(http://www.gccxml.org)灝辯煡閬撲簡)銆傝繘涓姝ヨ,
鍑℃槸鏈夌浉鍚岃璦鐗規ц岃娉曚笉鍚岀殑璇█, 閮藉彲浠ユ妸XML褰撲綔涓粙鏉ヤ簰鐩歌漿鎹唬鐮併傚疄闄呬笂
鍑犱箮鎵鏈夌殑涓繪祦璇█閮藉湪涓瀹氱▼搴︿笂婊¤凍榪欎釜鏉′歡銆傛垜浠彲浠ユ妸XML浣滀負涓縐嶄腑闂磋〃紺烘硶,
鍦ㄤ袱縐嶈璦涔嬮棿浜掔浉璇戠爜銆傛瘮鏂硅, 鎴戜滑鍙互鐢↗ava2XML鎶奐ava浠g爜杞崲鎴怷ML, 鐒跺悗鐢?br>XML2CPP鍐嶆妸XML杞崲鎴怌++浠g爜, 榪愭皵濂界殑璇? 灝辨槸璇? 濡傛灉鎴戜滑灝忓績閬垮厤浣跨敤閭d簺C++涓?br>鍏峰鐨凧ava鐗規х殑璇? 鎴戜滑鍙互寰楀埌瀹屽ソ鐨凜++紼嬪簭銆傝繖鍔炴硶鎬庝箞鏍? 婕備寒鍚?
榪欎竴鍒囧厖鍒嗚鏄? 鎴戜滑鍙互鎶奨ML浣滀負婧愪唬鐮佺殑閫氱敤瀛樺偍鏂瑰紡, 鍏跺疄鎴戜滑鑳藉浜х敓涓鏁村
浣跨敤緇熶竴璇硶鐨勭▼搴忚璦, 涔熻兘鍐欏嚭杞崲鍣? 鎶婂凡鏈変唬鐮佽漿鎹㈡垚XML鏍煎紡銆傚鏋滅湡鐨勯噰綰?br>榪欑鍔炴硶, 鍚勭璇█鐨勭紪璇戝櫒灝辯敤涓嶇潃鑷繁鍐欒娉曡В鏋愪簡, 瀹冧滑鍙互鐩存帴鐢╔ML鐨勮娉曡В
鏋愭潵鐩存帴鐢熸垚鎶借薄璇硶鏍戙?br>
璇村埌榪欓噷浣犺闂簡, 鎴戜滑鐮旂┒浜嗚繖鍗婂ぉXML, 榪欏拰Lisp鏈変粈涔堝叧緋誨憿? 姣曠珶XML鍑烘潵涔嬫椂,
Lisp鏃╁凡緇忛棶涓栦笁鍗佸勾浜嗐傝繖閲屾垜鍙互淇濊瘉, 浣犻┈涓婂氨浼氭槑鐧姐備笉榪囧湪緇х畫瑙i噴涔嬪墠, 鎴?br>浠厛鍋氫竴涓皬灝忕殑鎬濈淮緇冧範銆傜湅涓涓嬩笂闈㈣繖涓猉ML鐗堟湰鐨刟dd鍑芥暟渚嬪瓙, 浣犳庢牱緇欏畠鍒嗙被,
鏄唬鐮佽繕鏄暟鎹? 涓嶇敤澶鑰冭檻閮借兘鏄庣櫧, 鎶婂畠鍒嗗埌鍝竴綾婚兘璁插緱閫氥傚畠鏄疿ML, 瀹冩槸鏍?br>鍑嗘牸寮忕殑鏁版嵁銆傛垜浠篃鐭ラ亾, 瀹冨彲浠ラ氳繃鍐呭瓨涓殑鏍戠粨鏋勬潵鐢熸垚(GCC-XML鍋氱殑灝辨槸榪欎釜浜?br>鎯?銆傚畠淇濆瓨鍦ㄤ笉鍙墽琛岀殑鏂囦歡涓傛垜浠彲浠ユ妸瀹冭В鏋愭垚鏍戣妭鐐? 鐒跺悗鍋氫換鎰忕殑杞崲銆傛樉
鑰屾槗瑙? 瀹冩槸鏁版嵁銆備笉榪囦笖鎱? 铏界劧瀹冭娉曟湁鐐歸檶鐢? 鍙畠鍙堢‘紜疄瀹炴槸涓涓猘dd鍑芥暟,
瀵瑰惂? 涓鏃︾粡榪囪В鏋? 瀹冨氨鍙互鎷跨粰緙栬瘧鍣ㄧ紪璇戞墽琛屻傛垜浠彲浠ヨ交鑰屾槗涓懼啓鍑鴻繖涓猉ML
浠g爜瑙i噴鍣? 騫朵笖鐩存帴榪愯瀹冦傛垨鑰呮垜浠篃鍙互鎶婂畠璇戞垚Java鎴朇++浠g爜, 鐒跺悗鍐嶇紪璇戣繍
琛屻傛墍浠ヨ, 瀹冧篃鏄唬鐮併?br>
鎴戜滑璇村埌閭i噷浜? 涓嶉敊, 鎴戜滑宸茬粡鍙戠幇浜嗕竴涓湁瓚g殑鍏抽敭涔嬬偣銆傝繃鍘昏璁や負寰堥毦瑙g殑姒傚康
宸茬粡闈炲父鐩磋闈炲父綆鍗曠殑鏄劇幇鍑烘潵銆備唬鐮佷篃鏄暟鎹? 騫朵笖浠庢潵閮芥槸濡傛銆傝繖鍚搗鏉ョ柉鐤櫕
鐧殑, 瀹為檯涓婂嵈鏄繀鐒朵箣浜嬨傛垜璁歌榪囦細浠ヤ竴縐嶅叏鏂扮殑鏂瑰紡鏉ヨВ閲奓isp, 鎴戣閲嶇敵鎴戠殑璁?br>璇恒備絾鏄垜浠鍒昏繕娌℃湁鍒伴瀹氱殑鍦版柟, 鎵浠ヨ繕鏄厛緇х畫涓婅竟鐨勮璁恒?br>
鍒氭墠鎴戣榪? 鎴戜滑鍙互闈炲父綆鍗曞湴瀹炵幇XML鐗堢殑add鍑芥暟瑙i噴鍣? 榪欏惉璧鋒潵濂藉儚涓嶈繃鏄璇?br>鑰屽凡銆傝皝鐪熺殑浼氬姩鎵嬪仛涓涓嬪憿? 鏈繀鏈夊灝戜漢浼氳鐪熷寰呰繖浠朵簨銆傞殢渚胯璇? 騫朵笉鎵撶畻鐪?br>鐨勫幓鍋? 榪欐牱鐨勪簨鎯呬綘鍦ㄧ敓媧諱腑鎭愭曚篃閬囧埌鍚с備綘鏄庣櫧鎴戣繖鏍瘋鐨勬剰鎬濆惂, 鎴戣鐨勬湁娌℃湁
鎵撳姩浣? 鏈夊搰, 閭eソ, 鎴戜滑緇х畫銆?br>
閲嶆柊瀹¤Ant
鎴戜滑鐜板湪宸茬粡鏉ュ埌浜嗘湀浜儗鍏夌殑閭d竴闈? 鍏堝埆蹇欑潃紱誨紑銆傚啀鎺㈢儲涓涓? 鐪嬬湅鎴戜滑榪樿兘鍙戠幇
浠涔堜笢瑗褲傞棴涓婄溂鐫? 鎯充竴鎯?000騫村啲澶╃殑閭d釜闆ㄥ, 涓涓悕鍙獼ames Duncan Davidson
鐨勬澃鍑虹殑紼嬪簭鍛樻鍦ㄧ爺絀禩omcat鐨剆ervlet瀹瑰櫒銆傞偅鏃? 浠栨灝忓績鍦頒繚瀛樺ソ鍒氫慨鏀硅繃鐨勬枃
浠? 鐒跺悗鎵цmake銆傜粨鏋滃啋鍑轟簡涓澶у爢閿欒, 鏄劇劧鏈変粈涔堜笢瑗挎悶閿欎簡銆傜粡榪囦粩緇嗘鏌? 浠?br>鎯? 闅鵑亾鏄洜涓簍ab鍓嶉潰鍔犱簡涓┖鏍艱屽鑷村懡浠や笉鑳芥墽琛屽悧? 紜疄濡傛銆傝佹槸榪欐牱, 浠栫湡
鐨勫彈澶熶簡銆備箤浜戣儗鍚庣殑鏈堜寒緇欎簡浠栧惎紺? 浠栧垱寤轟簡涓涓柊鐨凧ava欏圭洰, 鐒跺悗鍐欎簡涓涓畝鍗?br>浣嗘槸鍗佸垎鏈夌敤鐨勫伐鍏? 榪欎釜宸ュ叿宸у鍦板埄鐢ㄤ簡Java灞炴ф枃浠朵腑鐨勪俊鎭潵鏋勯犲伐紼? 鐜板湪
James鍙互鍐檓akefile鐨勬浛浠e搧, 瀹冭兘璧峰埌鐩稿悓鐨勪綔鐢? 鑰屽艦寮忔洿鍔犱紭緹? 涔熶笉鐢ㄦ媴蹇冩湁
makefile閭f牱鍙仺鐨勭┖鏍奸棶棰樸傝繖涓伐鍏瘋兘澶熻嚜鍔ㄨВ閲婂睘鎬ф枃浠? 鐒跺悗閲囧彇姝g‘鐨勫姩浣滄潵
緙栬瘧宸ョ▼銆傜湡鏄畝鍗曡屼紭緹庛?br>
(浣滆呮敞: 鎴戜笉璁よ瘑James, James涔熶笉璁よ瘑鎴? 榪欎釜鏁呬簨鏄牴鎹綉涓婂叧浜嶢nt鍘嗗彶鐨勫笘瀛?br>铏氭瀯鐨?
浣跨敤Ant鏋勯燭omcat涔嬪悗鍑犱釜鏈? 浠栬秺鏉ヨ秺鎰熷埌Java鐨勫睘鎬ф枃浠朵笉瓚充互琛ㄨ揪澶嶆潅鐨勬瀯閫犳寚
浠ゃ傛枃浠墮渶瑕佹鍑? 鎷瘋礉, 緙栬瘧, 鍙戝埌鍙﹀涓鍙版満鍣? 榪涜鍗曞厓嫻嬭瘯銆傝鏄嚭閿? 灝卞彂閭?br>浠剁粰鐩稿叧浜哄憳, 瑕佹槸鎴愬姛, 灝辯戶緇湪灝藉彲鑳介珮灞傜殑鍗?volumn)涓婃墽琛屾瀯閫犮傝拷韙埌鏈鍚?
鍗瘋鍥炲鍒版渶鍒濈殑姘村鉤涓娿傜‘瀹? Java鐨勫睘鎬ф枃浠朵笉澶熺敤浜? James闇瑕佹洿鏈夊脊鎬х殑瑙e喅
鏂規銆備粬涓嶆兂鑷繁鍐欒В鏋愬櫒(鍥犱負浠栨洿甯屾湜鏈変竴涓叿鏈夊伐涓氭爣鍑嗙殑鏂規)銆俋ML鐪嬭搗鏉ユ槸涓?br>涓嶉敊鐨勯夋嫨銆備粬鑺變簡鍑犲ぉ宸ュか鎶夾nt縐繪鍒癤ML錛屼簬鏄紝涓浠朵紵澶х殑宸ュ叿璇炵敓浜嗐?br>
Ant鏄庢牱宸ヤ綔鐨勶紵鍘熺悊闈炲父綆鍗曘侫nt鎶婂寘鍚湁鏋勯犲懡浠ょ殑XML鏂囦歡(綆椾唬鐮佽繕鏄畻鏁版嵁,
浣犺嚜宸辨兂鍚?錛屼氦緇欎竴涓狫ava紼嬪簭鏉ヨВ鏋愭瘡涓涓厓绱狅紝瀹為檯鎯呭喌姣旀垜璇寸殑榪樿綆鍗曞緱澶氥?br>涓涓畝鍗曠殑XML鎸囦護浼氬鑷村叿鏈夌浉鍚屽悕瀛楃殑Java綾昏鍏ワ紝騫舵墽琛屽叾浠g爜銆?br>
<copy todir="../new/dir">
<fileset dir="src_dir" />
</copy>
榪欐鏂囧瓧鐨勫惈涔夋槸鎶婃簮鐩綍澶嶅埗鍒扮洰鏍囩洰褰曪紝Ant浼氭壘鍒頒竴涓?copy"浠誨姟(瀹為檯涓婂氨鏄竴涓?br>Java綾?, 閫氳繃璋冪敤Java鐨勬柟娉曟潵璁劇疆閫傚綋鍙傛暟(todir鍜宖ileset)錛岀劧鍚庢墽琛岃繖涓換鍔°?br>Ant甯︽湁涓緇勬牳蹇冪被, 鍙互鐢辯敤鎴蜂換鎰忔墿灞? 鍙閬靛畧鑻ュ共綰﹀畾灝卞彲浠ャ侫nt鎵懼埌榪欎簺綾?
姣忓綋閬囧埌XML鍏冪礌鏈夊悓鏍風殑鍚嶅瓧, 灝辨墽琛岀浉搴旂殑浠g爜銆傝繃紼嬮潪甯哥畝鍗曘侫nt鍋氬埌浜嗘垜浠墠闈?br>鎵璇寸殑涓滆タ: 瀹冩槸涓涓璦瑙i噴鍣? 浠ML浣滀負璇硶, 鎶奨ML鍏冪礌杞瘧涓洪傚綋鐨凧ava鎸囦護銆?br>鎴戜滑鍙互鍐欎竴涓?add"浠誨姟, 鐒跺悗, 褰撳彂鐜癤ML涓湁add鎻忚堪鐨勬椂鍊? 灝辨墽琛岃繖涓猘dd浠誨姟銆?br>鐢變簬Ant鏄潪甯告祦琛岀殑欏圭洰, 鍓嶉潰灞曠ず鐨勭瓥鐣ュ氨鏄懼緱鏇翠負鏄庢櫤銆傛瘯绔? 榪欎釜宸ュ叿姣忓ぉ宸笉
澶氭湁鍑犲崈瀹跺叕鍙稿湪浣跨敤銆?br>
鍒扮洰鍓嶄負涔? 鎴戣繕娌℃湁璇碅nt鍦ㄨВ鏋怷ML鏃舵墍閬囧埌鍥伴毦銆備綘涔熶笉鐢ㄩ夯鐑﹀幓瀹冪殑緗戠珯涓婂幓鎵劇瓟
妗堜簡, 涓嶄細鎵懼埌鏈変環鍊肩殑涓滆タ銆傝嚦灝戝鎴戜滑榪欎釜璁洪鏉ヨ鏄姝ゃ傛垜浠繕鏄戶緇笅涓姝ヨ
璁哄惂銆傛垜浠瓟妗堝氨鍦ㄩ偅閲屻?br>
涓轟粈涔堟槸XML
鏈夋椂鍊欐紜殑鍐崇瓥騫墮潪瀹屽叏鍑轟簬娣辨濈啛铏戙傛垜涓嶇煡閬揓ames閫夋嫨XML鏄惁鍑轟簬娣辨濈啛铏戙備篃
璁鎬粎浠呮槸涓笅鎰忚瘑鐨勫喅瀹氥傝嚦灝戜粠James鍦ˋnt緗戠珯涓婂彂琛ㄧ殑鏂囩珷鐪嬭搗鏉? 浠栨墍璇寸殑鐞嗙敱瀹?br>鍏ㄦ槸浼兼槸鑰岄潪銆備粬鐨勪富瑕佺悊鐢辨槸縐繪鎬у拰鎵╁睍鎬? 鍦ˋnt妗堜緥涓? 鎴戠湅涓嶅嚭榪欎袱鏉℃湁浠涔?br>甯姪銆備嬌鐢╔ML鑰屼笉鏄疛ava浠g爜, 鍒板簳鏈変粈涔堝ソ澶? 涓轟粈涔堜笉鍐欎竴緇凧ava綾? 鎻愪緵api鏉ユ弧
瓚沖熀鏈換鍔?鎷瘋礉鐩綍, 緙栬瘧絳夌瓑), 鐒跺悗鍦↗ava閲岀洿鎺ヨ皟鐢ㄨ繖浜涗唬鐮? 榪欐牱鍋氫粛鐒跺彲浠ヤ繚
璇佺Щ妞嶆? 鎵╁睍鎬т篃鏄鏃犵枒闂殑銆傝屼笖璇硶涔熸洿涓虹啛鎮? 鐪嬬潃欏虹溂銆傞偅涓轟粈涔堣鐢?XML
鍛? 鏈変粈涔堟洿濂界殑鐞嗙敱鍚?
鏈夌殑銆傝櫧鐒舵垜涓嶇‘瀹欽ames鏄惁紜疄鎰忚瘑鍒頒簡銆傚湪璇箟鐨勫彲鏋勯犳ф柟闈? XML鐨勫脊鎬ф槸Java
鏈涘皹鑾強鐨勩傛垜涓嶆兂鐢ㄩ珮娣辮帿嫻嬬殑鍚嶈瘝鏉ュ悡鍞綘, 鍏朵腑鐨勯亾鐞嗙浉褰撶畝鍗? 瑙i噴璧鋒潵騫朵笉璐?br>寰堝鍔熷か銆傚ソ, 鍋氬ソ棰勫鍔ㄤ綔, 鎴戜滑椹笂灝辮鏈濆悜欏挎偀鐨勬椂鍒誨仛濂嬪姏涓璺冦?br>
涓婇潰鐨勯偅涓猚opy鐨勪緥瀛? 鐢↗ava浠g爜鎬庢牱瀹炵幇鍛? 鎴戜滑鍙互榪欐牱鍋?
CopyTask copy = new CopyTask();
Fileset fileset = new Fileset();
fileset.setDir("src_dir");
copy.setToDir("../new/dir");
copy.setFileset(fileset);
copy.excute();
榪欎釜浠g爜鐪嬭搗鏉ュ拰XML鐨勯偅涓緢鐩鎬技, 鍙槸紼嶅井闀夸竴鐐廣傚樊鍒湪閭i噷? 宸埆鍦ㄤ簬XML鏋勯犱簡
涓涓壒孌婄殑copy鍔ㄨ瘝, 濡傛灉鎴戜滑紜鐢↗ava鏉ュ啓鐨勮瘽, 搴旇鏄繖涓牱瀛?
copy("../new/dir");
{
fileset("src_dir");
}
鐪嬪埌宸埆浜嗗悧? 浠ヤ笂浠g爜(濡傛灉鍙互鍦↗ava涓敤鐨勫寲), 鏄竴涓壒孌婄殑copy綆楃, 鏈夌偣鍍?br>for寰幆鎴栬匤ava5涓殑foreach寰幆銆傚鏋滄垜浠湁涓涓漿鎹㈠櫒, 鍙互鎶奨ML杞崲鍒癑ava, 澶?br>姒傚氨浼氬緱鍒頒笂闈㈣繖孌典簨瀹炰笂涓嶅彲浠ユ墽琛岀殑浠g爜銆傚洜涓篔ava鐨勬妧鏈鑼冩槸瀹氭鐨? 鎴戜滑娌℃湁
鍔炴硶鍦ㄧ▼搴忛噷鏀瑰彉瀹冦傛垜浠彲浠ュ鍔犲寘, 澧炲姞綾? 澧炲姞鏂規硶, 浣嗘槸鎴戜滑娌″姙娉曞鍔犵畻絎?
鑰屽浜嶺ML, 鎴戜滑鏄劇劧鍙互浠葷敱鑷繁澧炲姞榪欐牱鐨勪笢瑗褲傚浜嶺ML鐨勮娉曟爲鏉ヨ, 鍙鍘熸剰,
鎴戜滑鍙互浠繪剰澧炲姞浠諱綍鍏冪礌, 鍥犳絳変簬鎴戜滑鍙互浠繪剰澧炲姞綆楃銆傚鏋滀綘榪樹笉澶槑鐧界殑璇?
鐪嬩笅闈㈣繖涓緥瀛? 鍔犲叆鎴戜滑瑕佺粰Java寮曞叆涓涓猽nless綆楃:
unless(someObject.canFly())
{
someObject.transportByGround():
}
鍦ㄤ笂闈㈢殑涓や釜渚嬪瓙涓? 鎴戜滑鎵撶畻緇橨ava璇硶鎵╁睍涓や釜綆楃, 鎴愮粍鎷瘋礉鏂囦歡綆楃鍜屾潯浠剁畻絎?br>unless, 鎴戜滑瑕佹兂鍋氬埌榪欎竴鐐? 灝卞繀欏諱慨鏀笿ava緙栬瘧鍣ㄨ兘澶熸帴鍙楃殑鎶借薄璇硶鏍? 鏄劇劧鎴戜滑
鏃犳硶鐢↗ava鏍囧噯鐨勫姛鑳芥潵瀹炵幇瀹冦備絾鏄湪XML涓垜浠彲浠ヨ交鑰屾槗涓懼湴鍋氬埌銆傛垜浠殑瑙f瀽鍣?br>鏍規嵁 XML鍏冪礌, 鐢熸垚鎶借薄璇硶鏍? 鐢辨鐢熸垚綆楃, 鎵浠? 鎴戜滑鍙互浠繪剰寮曞叆浠諱綍綆楃銆?br>
瀵逛簬澶嶆潅鐨勭畻絎︽潵璇? 榪欐牱鍋氱殑濂藉鏄捐屾槗瑙併傛瘮濡? 鐢ㄧ壒瀹氱殑綆楃鏉ュ仛媯鍑烘簮鐮? 緙栬瘧
鏂囦歡, 鍗曞厓嫻嬭瘯, 鍙戦侀偖浠剁瓑浠誨姟, 鎯蟲兂鐪嬫湁澶氫箞緹庡銆傚浜庣壒瀹氱殑棰樼洰, 姣斿璇存瀯閫犺蔣
浠墮」鐩? 榪欎簺綆楃鐨勪嬌鐢ㄥ彲浠ュぇ騫呭噺浣庡皯浠g爜鐨勬暟閲忋傚鍔犱唬鐮佺殑娓呮櫚紼嬪害鍜屽彲閲嶇敤鎬с?br>瑙i噴鎬х殑XML鍙互寰堝鏄撶殑杈懼埌榪欎釜鐩爣銆俋ML鏄瓨鍌ㄥ眰嬈″寲鏁版嵁鐨勭畝鍗曟暟鎹枃浠? 鑰屽湪
Java涓? 鐢變簬灞傛緇撴瀯鏄畾姝葷殑(浣犲緢蹇氨浼氱湅鍒? Lisp鐨勬儏鍐典笌姝ゆ埅鐒朵笉鍚?, 鎴戜滑灝辨病
娉曡揪鍒頒笂榪扮洰鏍囥備篃璁歌繖姝f槸Ant鐨勬垚鍔熶箣澶勫憿銆?br>
浣犲彲浠ユ敞鎰忎竴涓嬫渶榪慗ava鍜孋#鐨勫彉鍖?灝ゅ叾鏄疌#3.0鐨勬妧鏈鑼?, C#鎶婂父鐢ㄧ殑鍔熻兘鎶借薄鍑?br>鏉? 浣滀負綆楃澧炲姞鍒癈#涓侰#鏂板鍔犵殑query綆楃灝辨槸涓涓緥瀛愩傚畠鐢ㄧ殑榪樻槸浼犵粺鐨勪綔娉?
C#鐨勮璁¤呬慨鏀規娊璞¤娉曟爲, 鐒跺悗澧炲姞瀵瑰簲鐨勫疄鐜般傚鏋滅▼搴忓憳鑷繁涔熻兘淇敼鎶借薄璇硶鏍?br>璇ユ湁澶氬ソ! 閭f牱鎴戜滑灝卞彲浠ユ瀯閫犵敤浜庣壒瀹氶棶棰樼殑瀛愯璦(姣斿璇村氨鍍廇nt榪欑鐢ㄤ簬鏋勯犻」鐩?br>鐨勮璦), 浣犺兘鎯沖埌鍒殑渚嬪瓙鍚? 鍐嶆濊冧竴涓嬭繖涓蹇點備笉榪囦篃涓嶅繀鎬濊冨お鐢? 鎴戜滑寰呬細
榪樹細鍥炲埌榪欎釜棰樼洰銆傞偅鏃跺欏氨浼氭洿鍔犳竻鏅般?br>
紱籐isp瓚婃潵瓚婅繎
鎴戜滑鍏堟妸綆楃鐨勪簨鎯呮斁涓鏀? 鑰冭檻涓涓婣nt璁捐灞闄愪箣澶栫殑涓滆タ銆傛垜鏃╁厛璇磋繃, Ant鍙互閫?br>榪囧啓Java綾繪潵鎵╁睍銆侫nt瑙f瀽鍣ㄤ細鏍規嵁鍚嶅瓧鏉ュ尮閰峏ML鍏冪礌鍜孞ava綾? 涓鏃︽壘鍒板尮閰? 灝辨墽
琛岀浉搴斾換鍔°備負浠涔堜笉鐢ˋnt鑷繁鏉ユ墿灞旳nt鍛? 姣曠珶鏍稿績浠誨姟瑕佸寘鍚緢澶氫紶緇熻璦鐨勭粨鏋?br>(渚嬪"if"), 濡傛灉Ant鑷韓灝辮兘鎻愪緵鏋勯犱換鍔$殑鑳藉姏(鑰屼笉鏄緷璧杍ava綾?, 鎴戜滑灝卞彲浠ュ緱
鍒版洿楂樼殑縐繪鎬с傛垜浠皢浼氫緷璧栦竴緇勬牳蹇冧換鍔?濡傛灉浣犲師鎰? 涔熶笉濡ㄦ妸瀹冪О浣滄爣鍑嗗簱), 鑰?br>涓嶇敤綆℃湁娌℃湁Java 鐜浜嗐傝繖緇勬牳蹇冧換鍔″彲浠ョ敤浠諱綍鏂瑰紡鏉ュ疄鐜? 鑰屽叾浠栦換鍔″緩絳戝湪榪?br>緇勬牳蹇冧換鍔′箣涓? 閭f牱鐨勮瘽, Ant灝變細鎴愪負閫氱敤鐨? 鍙墿灞曠殑, 鍩轟簬XML鐨勭紪紼嬭璦銆傝冭檻
涓嬮潰榪欑浠g爜鐨勫彲鑳芥?
<task name="Test">
<echo message="Hello World" />
</task>
<Test />
濡傛灉XML鏀寔"task"鐨勫垱寤? 涓婇潰榪欐浠g爜灝變細杈撳嚭"Hello World!". 瀹為檯涓? 鎴戜滑鍙互
鐢↗ava鍐欎釜"task"浠誨姟, 鐒跺悗鐢ˋnt-XML鏉ユ墿灞曞畠銆侫nt鍙互鍦ㄧ畝鍗曞師璇殑鍩虹涓婂啓鍑烘洿澶?br>鏉傜殑鍘熻, 灝卞儚鍏朵粬緙栫▼璇█甯哥敤鐨勪綔娉曚竴鏍楓傝繖涔熷氨鏄垜浠竴寮濮嬫彁鍒扮殑鍩轟簬XML鐨勭紪
紼嬭璦銆傝繖鏍峰仛鐢ㄥ涓嶅ぇ(浣犵煡閬撲負鐢氫箞鍚?), 浣嗘槸鐪熺殑寰堥叿銆?br>
鍐嶇湅涓鍥炴垜浠垰鎵嶈鐨凾ask浠誨姟銆傜璐轟綘鍛, 浣犲湪鐪婰isp浠g爜!!! 鎴戣浠涔? 涓鐐歸兘涓嶅儚
Lisp鍚? 娌″叧緋? 鎴戜滑鍐嶇粰瀹冩敹鎷句竴涓嬨?br>
姣擷ML鏇村ソ
鍓嶉潰涓鑺傝榪? Ant鑷垜鎵╁睍娌′粈涔堝ぇ鐢? 鍘熷洜鍦ㄤ簬XML寰堢儲鐞愩傚浜庢暟鎹潵璇? 榪欎釜闂
榪樹笉澶ぇ, 浣嗗鏋滀唬鐮佸緢鐑︾悙鐨勮瘽, 鍏夋槸鎵撳瓧涓婄殑楹葷儲灝辮凍浠ユ姷娑堝畠鐨勫ソ澶勩備綘鍐欒繃Ant
鐨勮剼鏈悧? 鎴戝啓榪? 褰撹剼鏈揪鍒頒竴瀹氬鏉傚害鐨勬椂鍊? XML闈炲父璁╀漢鍘岀儲銆傛兂鎯崇湅鍚? 涓轟簡
鍐欑粨鏉熸爣絳? 姣忎釜璇嶉兘寰楁墦涓ら亶, 涓嶅彂鐤畻濂界殑!
涓轟簡瑙e喅榪欎釜闂, 鎴戜滑搴斿綋綆鍖栧啓娉曘傞』鐭? XML浠呬粎鏄竴縐嶈〃杈懼眰嬈″寲鏁版嵁鐨勬柟寮忋?br>鎴戜滑騫朵笉鏄竴瀹氳浣跨敤灝栨嫭鍙鋒墠鑳藉緱鍒版爲鐨勫簭鍒楀寲緇撴灉銆傛垜浠畬鍏ㄥ彲浠ラ噰鐢ㄥ叾浠栫殑鏍煎紡銆?br>鍏朵腑鐨勪竴縐?鍒氬ソ灝辨槸Lisp鎵閲囩敤鐨?鏍煎紡, 鍙仛s琛ㄨ揪寮忋俿琛ㄨ揪寮忚鍋氱殑鍜孹ML涓鏍? 浣?br>瀹冪殑濂藉鏄啓娉曟洿綆鍗? 綆鍗曠殑鍐欐硶鏇撮傚悎浠g爜杈撳叆銆傚悗闈㈡垜浼氳緇嗚s琛ㄨ揪寮忋傝繖涔嬪墠
鎴戣娓呯悊涓涓媂ML鐨勪笢瑗褲傝冭檻涓涓嬪叧浜庢嫹璐濇枃浠剁殑渚嬪瓙:
<copy toDir="../new/dir">
<fileset dir="src_dir">
</copy>
鎯蟲兂鐪嬪湪鍐呭瓨閲岄潰, 榪欐浠g爜鐨勮В鏋愭爲鍦ㄥ唴瀛樹細鏄粈涔堟牱瀛? 浼氭湁涓涓?copy"鑺傜偣, 鍏朵笅
鏈変竴涓?"fileset"鑺傜偣, 浣嗘槸灞炴у湪鍝噷鍛? 瀹冩庢牱琛ㄨ揪鍛? 濡傛灉浣犱互鍓嶇敤榪嘪ML, 騫朵笖
寮勪笉娓呮璇ョ敤鍏冪礌榪樻槸璇ョ敤灞炴? 浣犱笉鐢ㄦ劅鍒板鍗? 鍒漢涓鏍風硦娑傜潃鍛€傛病浜虹湡鐨勬悶寰楁竻
妤氥傝繖涓夋嫨涓庡叾璇存槸鍩轟簬鎶鏈殑鐞嗙敱, 榪樹笉濡傝鏄棴鐫鐪肩瀻鎽搞備粠姒傚康涓婃潵璁? 灞炴т篃
鏄竴縐嶅厓绱? 浠諱綍灞炴ц兘鍋氱殑, 鍏冪礌涓鏍峰仛寰楀埌銆俋ML寮曞叆灞炴х殑鐞嗙敱, 鍏跺疄灝辨槸涓轟簡璁?br>XML鍐欐硶涓嶉偅涔堝啑闀褲傛瘮濡傛垜浠湅涓緥瀛?
<copy>
<toDir>../new/dir</toDir>
<fileset>
<dir>src_dir</dir>
</fileset>
</copy>
涓や笅姣旇緝, 鍐呭鐨勪俊鎭噺瀹屽叏涓鏍? 鐢ㄥ睘鎬у彲浠ュ噺灝戞墦瀛楁暟閲忋傚鏋淴ML娌℃湁灞炴х殑璇?
鍏夋槸鎵撳瓧灝卞鎶婁漢鎼炵柉鎺夈?br>
璇村畬浜嗗睘鎬х殑闂, 鎴戜滑鍐嶆潵鐪嬩竴鐪媠琛ㄨ揪寮忋備箣鎵浠ョ粫榪欎箞涓集, 鏄洜涓簊琛ㄨ揪寮忔病鏈夊睘
鎬х殑姒傚康銆傚洜涓簊琛ㄨ揪寮忛潪甯哥畝緇? 鏍規湰娌℃湁蹇呰寮曞叆灞炴с傛垜浠湪鎶奨ML杞崲鎴恠琛ㄨ揪寮?br>鐨勬椂鍊? 蹇冮噷搴旇璁頒綇榪欎竴鐐廣傜湅涓緥瀛? 涓婇潰鐨勪唬鐮佽瘧鎴恠琛ㄨ揪寮忔槸榪欐牱鐨?
(copy
(todir "../new/dir")
(fileset (dir "src_dir")))
浠旂粏鐪嬬湅榪欎釜渚嬪瓙, 宸埆鍦ㄥ摢閲? 灝栨嫭鍙鋒敼鎴愪簡鍦嗘嫭鍙? 姣忎釜鍏冪礌鍘熸潵鏄湁涓瀵規嫭鍙鋒爣璁?br>鍖呭洿鐨? 鐜板湪鍙栨秷浜嗗悗涓涓?灝辨槸甯︽枩鏉犵殑閭d釜)鎷彿鏍囪銆傝〃紺哄厓绱犵殑緇撴潫鍙渶瑕佷竴涓?)"
灝卞彲浠ヤ簡銆備笉閿? 宸埆灝辨槸榪欎簺銆傝繖涓ょ琛ㄨ揪鏂瑰紡鐨勮漿鎹? 闈炲父鑷劧, 涔熼潪甯哥畝鍗曘俿琛?br>杈懼紡鎵撹搗瀛楁潵, 涔熺渷浜嬪緱澶氥傜涓嬈$湅s琛ㄨ揪寮?Lisp)鏃? 鎷彿寰堢儲浜烘槸鍚? 鐜板湪鎴戜滑鏄?br>鐧戒簡鑳屽悗鐨勯亾鐞? 涓涓嬪瓙灝卞彉寰楀鏄撳浜嗐傝嚦灝? 姣擷ML瑕佸ソ鐨勫銆傜敤s琛ㄨ揪寮忓啓浠g爜, 涓?br>鍗曟槸瀹炵敤, 鑰屼笖涔熷緢璁╀漢鎰夊揩銆俿琛ㄨ揪寮忓叿鏈塜ML鐨勪竴鍒囧ソ澶? 榪欎簺濂藉鏄垜浠垰鍒氭帰璁ㄨ繃
鐨勩傜幇鍦ㄦ垜浠湅鐪嬫洿鍔燣isp椋庢牸鐨則ask渚嬪瓙:
(task (name "Test")
(echo (message "Hellow World!")))
(Test)
鐢↙isp鐨勮璇濇潵璁? s琛ㄨ揪寮忕О涓鴻〃(list)銆傚浜庝笂闈㈢殑渚嬪瓙, 濡傛灉鎴戜滑鍐欑殑鏃跺欎笉鍔犳崲
琛? 鐢ㄩ楀彿鏉ヤ唬鏇跨┖鏍? 閭d箞榪欎釜琛ㄨ揪寮忕湅璧鋒潵灝遍潪甯稿儚涓涓厓绱犲垪琛? 鍏朵腑鍙堝祵濂楃潃鍏?br>浠栨爣璁般?br>
(task, (name, "test"), (echo, (message, "Hello World!")))
XML鑷劧涔熷彲浠ョ敤榪欐牱鐨勯鏍兼潵鍐欍傚綋鐒朵笂闈㈣繖鍙ュ茍涓嶆槸涓鑸剰涔変笂鐨勫厓绱犺〃銆傚畠瀹為檯涓?br>鏄竴涓爲銆傝繖鍜孹ML鐨勪綔鐢ㄦ槸涓鏍風殑銆傜О瀹冧負鍒楄〃, 甯屾湜浣犱笉浼氭劅鍒拌糠鎯? 鍥犱負宓屽琛ㄥ拰
鏍戝疄闄呬笂鏄竴鐮佷簨銆侺isp鐨勫瓧闈㈡剰鎬濆氨鏄〃澶勭悊(list processing), 鍏跺疄涔熷彲浠ョО涓烘爲
澶勭悊, 榪欏拰澶勭悊XML鑺傜偣娌℃湁浠涔堜笉鍚屻?br>
緇忓彈榪欎竴鐣姌紓ㄤ互鍚? 鐜板湪鎴戜滑緇堜簬鐩稿綋鎺ヨ繎Lisp浜? Lisp鐨勬嫭鍙風殑紲炵鏈川(灝卞儚璁稿
Lisp鐙傜儹鍒嗗瓙璁や負鐨?閫愭笎鏄劇幇鍑烘潵銆傜幇鍦ㄦ垜浠戶緇爺絀跺叾浠栧唴瀹廣?br>
閲嶆柊瀹¤C璇█鐨勫畯
鍒頒簡榪欓噷, 瀵筙ML鐨勮璁轟綘澶ф閮藉惉绱簡, 鎴戦兘璁茬瘡浜嗐傛垜浠厛鍋滀竴鍋? 鎶婃爲, s琛ㄨ揪寮?
Ant榪欎簺涓滆タ鍏堟斁涓鏀? 鎴戜滑鏉ヨ璇碈鐨勯澶勭悊鍣ㄣ備竴瀹氭湁浜洪棶浜? 鎴戜滑鐨勮瘽棰樺拰C鏈変粈涔?br>鍏崇郴? 鎴戜滑宸茬粡鐭ラ亾浜嗗緢澶氬叧浜庡厓緙栫▼鐨勪簨鎯? 涔熸帰璁ㄨ繃涓撻棬鍐欎唬鐮佺殑浠g爜銆傜悊瑙h繖闂
鏈変竴瀹氶毦搴? 鍥犱負鐩稿叧璁ㄨ鏂囩珷鎵浣跨敤鐨勭紪紼嬭璦, 閮芥槸浣犱滑涓嶇啛鎮夌殑銆備絾鏄鏋滃彧璁烘
蹇電殑璇? 灝辯浉瀵硅綆鍗曚竴浜涖傛垜鐩鎬俊, 濡傛灉浠璇█鍋氫緥瀛愭潵璁ㄨ鍏冪紪紼? 鐞嗚В璧鋒潵涓瀹?br>浼氬鏄撳緱澶氥傚ソ, 鎴戜滑鎺ョ潃鐪嬨?br>
涓涓棶棰樻槸, 涓轟粈涔堣鐢ㄤ唬鐮佹潵鍐欎唬鐮佸憿? 鍦ㄥ疄闄呯殑緙栫▼涓? 鎬庢牱鍋氬埌榪欎竴鐐瑰憿? 鍒板簳鍏?br>緙栫▼鏄粈涔堟剰鎬? 浣犲ぇ姒傚凡緇忓惉璇磋繃榪欎簺闂鐨勭瓟妗? 浣嗘槸騫朵笉鎳傚緱鍏朵腑緙樼敱銆備負浜嗘彮紺?br>鑳屽悗鐨勭湡鐞? 鎴戜滑鏉ョ湅涓涓嬩竴涓畝鍗曠殑鏁版嵁搴撴煡璇㈤棶棰樸傝繖縐嶉鐩垜浠兘鍋氳繃銆傛瘮鏂硅,
鐩存帴鍦ㄧ▼搴忕爜閲屽埌澶勫啓SQL璇彞鏉ヤ慨鏀硅〃(table)閲岀殑鏁版嵁, 鍐欏浜嗗氨闈炲父鐑︿漢銆傚嵆渚跨敤
C#3.0鐨凩INQ, 浠嶇劧涓嶅噺鍏剁棝鑻︺傚啓涓涓畬鏁寸殑SQL鏌ヨ(灝界璇硶寰堜紭緹?鏉ヤ慨鏀規煇浜虹殑鍦?br>鍧, 鎴栬呮煡鎵炬煇浜虹殑鍚嶅瓧, 緇濆鏄歡浠ょ▼搴忓憳鍊嶆劅涔忓懗鐨勪簨鎯? 閭d箞鎴戜滑璇ユ庢牱鏉ヨВ鍐寵繖
涓棶棰? 絳旀灝辨槸: 浣跨敤鏁版嵁璁塊棶灞傘?
姒傚康鎸虹畝鍗? 鍏惰鐐規槸鎶婃暟鎹闂殑鍐呭(鑷沖皯鏄偅浜涙瘮杈冪悙紕庣殑閮ㄥ垎)鎶借薄鍑烘潵, 鐢ㄧ被鏉?br>鏄犲皠鏁版嵁搴撶殑琛? 鐒跺悗鐢ㄨ闂璞″睘鎬ц闂櫒(accessor)鐨勫姙娉曟潵闂存帴瀹炵幇鏌ヨ銆傝繖鏍峰氨
鏋佸ぇ鍦扮畝鍖栦簡寮鍙戝伐浣滈噺銆傛垜浠敤璁塊棶瀵硅薄鐨勬柟娉?鎴栬呭睘鎬ц祴鍊? 榪欒瑙嗕綘閫夌敤鐨勮璦
鑰屽畾)鏉ヤ唬鏇垮啓SQL鏌ヨ璇彞銆傚嚒鏄敤榪囪繖縐嶆柟娉曠殑浜? 閮界煡閬撹繖寰堣妭鐪佹椂闂淬傚綋鐒? 濡傛灉
浣犺浜茶嚜鍐欒繖鏍蜂竴涓娊璞″眰, 閭e彲鏄鑺遍潪甯稿鐨勬椂闂寸殑--浣犺鍐欎竴緇勭被鏉ユ槧灝勮〃, 鎶婂睘
鎬ц闂漿鎹負SQL鏌ヨ, 榪欎釜媧葷浉褰撹楄垂綺懼姏銆傜敤鎵嬪伐鏉ュ仛鏄劇劧鏄緢涓嶆槑鏅虹殑銆備絾鏄竴鏃?br>浣犳湁浜嗘柟妗堝拰妯℃澘, 瀹為檯涓婂氨娌℃湁澶氬皯涓滆タ闇瑕佹濊冪殑銆備綘鍙渶瑕佹寜鐓у悓鏍風殑妯℃澘涓嬈″張
涓嬈¢噸澶嶇紪鍐欑浉浼間唬鐮佸氨鍙互浜嗐備簨瀹炰笂寰堝浜哄凡緇忓彂鐜頒簡鏇村ソ鐨勬柟娉? 鏈変竴浜涘伐鍏峰彲浠?br>甯姪浣犺繛鎺ユ暟鎹簱, 鎶撳彇鏁版嵁搴撶粨鏋勫畾涔?schema), 鎸夌収棰勫畾涔夌殑鎴栬呯敤鎴峰畾鍒剁殑妯℃澘鏉?br>鑷姩緙栧啓浠g爜銆?br>
濡傛灉浣犵敤榪囪繖縐嶅伐鍏? 浣犺偗瀹氫細瀵瑰畠鐨勭濂囨晥鏋滄繁涓烘姌鏈嶃傚線寰鍙渶瑕侀紶鏍囩偣鍑繪暟嬈? 灝?br>鍙互榪炴帴鍒版暟鎹簱, 浜х敓鏁版嵁璁塊棶婧愮爜, 鐒跺悗鎶婃枃浠跺姞鍏ュ埌浣犵殑宸ョ▼閲岄潰, 鍗佸嚑鍒嗛挓鐨勫伐
浣? 鎸夌収寰甯告墜宸ユ柟寮忔潵浣滅殑璇? 涔熻闇瑕佹暟鐧句釜灝忔椂浜哄伐(man-hours)鎵嶈兘瀹屾垚銆傚彲鏄?
濡傛灉浣犵殑鏁版嵁搴撶粨鏋勫畾涔夊悗鏉ユ敼鍙樹簡鎬庝箞鍔? 閭f牱鐨勮瘽, 浣犲彧闇鎶婅繖涓繃紼嬮噸澶嶄竴閬嶅氨鍙?br>浠ヤ簡銆傜敋鑷蟲湁涓浜涘伐鍏瘋兘鑷姩瀹屾垚榪欓」鍙樺姩宸ヤ綔銆備綘鍙鎶婂畠浣滀負宸ョ▼鏋勯犵殑涓閮ㄥ垎, 姣?br>嬈$紪璇戝伐紼嬬殑鏃跺? 鏁版嵁搴撻儴鍒嗕篃浼氳嚜鍔ㄥ湴閲嶆柊鏋勯犮傝繖鐪熺殑澶浜嗐備綘瑕佸仛鐨勪簨鎯呭熀鏈?br>涓婂噺鍒頒簡0銆傚鏋滄暟鎹簱緇撴瀯瀹氫箟鍙戠敓浜嗘敼鍙? 騫跺湪緙栬瘧鏃惰嚜鍔ㄦ洿鏂頒簡鏁版嵁璁塊棶灞傜殑浠g爜,
閭d箞紼嬪簭涓換浣曚嬌鐢ㄨ繃鏃剁殑鏃т唬鐮佺殑鍦版柟, 閮戒細寮曞彂緙栬瘧閿欒銆?br>
鏁版嵁璁塊棶灞傛槸涓緢濂界殑渚嬪瓙, 榪欐牱鐨勪緥瀛愯繕鏈夊ソ澶氥備粠GUI鏍鋒澘浠g爜, WEB浠g爜, COM鍜?br>CORBA瀛樻牴, 浠ュ強MFC鍜孉TL絳夌瓑銆傚湪榪欎簺鍦版柟, 閮芥槸鏈夊ソ澶氱浉浼間唬鐮佸嬈¢噸澶嶃傛棦鐒惰繖浜?br>浠g爜鏈夊彲鑳借嚜鍔ㄧ紪鍐? 鑰岀▼搴忓憳鏃墮棿鍙堣繙榪滄瘮CPU鏃墮棿鏄傝吹, 褰撶劧灝變駭鐢熶簡濂藉宸ュ叿鏉ヨ嚜
鍔ㄧ敓鎴愭牱鏉夸唬鐮併傝繖浜涘伐鍏風殑鏈川鏄粈涔堝憿? 瀹冧滑瀹為檯涓婂氨鏄埗閫犵▼搴忕殑紼嬪簭銆傚畠浠湁涓
涓縐樼殑鍚嶅瓧, 鍙仛鍏冪紪紼嬨傛墍璋撳厓緙栫▼鐨勬湰涔? 灝辨槸濡傛銆?br>
鍏冪紪紼嬫湰鏉ュ彲浠ョ敤鍒版棤鏁板鐨勫湴鏂? 浣嗗疄闄呬笂浣跨敤鐨勬鏁板嵈娌℃湁閭d箞澶氥傚綊鏍圭粨搴? 鎴戜滑
蹇冮噷榪樻槸鍦ㄧ洏綆? 鍋囪閲嶅浠g爜鐢ㄦ嫹璐濈矘璐寸殑璇? 澶ф瑕侀噸澶?,7嬈? 瀵逛簬榪欐牱鐨勫伐浣滈噺,
鍊煎緱涓撻棬寤虹珛涓濂楃敓鎴愬伐鍏峰悧? 褰撶劧涓嶅煎緱銆傛暟鎹闂眰鍜孋OM瀛樻牴寰寰闇瑕侀噸鐢ㄦ暟鐧炬,
鐢氳嚦涓婂崈嬈? 鎵浠ョ敤宸ュ叿鐢熸垚鏄渶濂界殑鍔炴硶銆傝岄偅浜涗粎浠呮槸閲嶅鍑犳鍗佸嚑嬈$殑浠g爜, 鏄病
鏈夊繀瑕佷笓闂ㄥ仛宸ュ叿鐨勩備笉蹇呰鐨勬椂鍊欎篃鍘誨紑鍙戜唬鐮佺敓鎴愬伐鍏? 閭e氨鏄劇劧榪囧害浼拌浜嗕唬鐮佺敓
鎴愮殑濂藉銆傚綋鐒? 濡傛灉鍒涘緩榪欑被宸ュ叿瓚沖綆鍗曠殑璇? 榪樻槸搴斿綋灝介噺澶氱敤, 鍥犱負榪欐牱鍋氬繀鐒?br>浼氳妭鐪佹椂闂淬傜幇鍦ㄦ潵鐪嬩竴涓嬫湁娌℃湁鍚堢悊鐨勫姙娉曟潵杈懼埌榪欎釜鐩殑銆?br>
鐜板湪, C棰勫鐞嗗櫒瑕佹淳涓婄敤鍦轟簡銆傛垜浠兘鐢ㄨ繃C/C++鐨勯澶勭悊鍣? 鎴戜滑鐢ㄥ畠鎵ц綆鍗曠殑緙栬瘧
鎸囦護, 鏉ヤ駭鐢熺畝鍗曠殑浠g爜鍙樻崲(姣旀柟璇? 璁劇疆璋冭瘯浠g爜寮鍏?, 鐪嬩竴涓緥瀛?
#define triple(X) X+X+X
榪欎竴琛岀殑浣滅敤鏄粈涔? 榪欐槸涓涓畝鍗曠殑棰勭紪璇戞寚浠? 瀹冩妸紼嬪簭涓殑triple(X)鏇挎崲縐頒負
X+X+X銆備緥濡? 鎶婃墍鏈夌殑triple(5)閮芥崲鎴?+5+5, 鐒跺悗鍐嶄氦緇欑紪璇戝櫒緙栬瘧銆傝繖灝辨槸涓涓畝
鍗曠殑浠g爜鐢熸垚鐨勪緥瀛愩傝鏄疌鐨勯澶勭悊鍣ㄥ啀寮哄ぇ涓鐐? 瑕佹槸鑳藉鍏佽榪炴帴鏁版嵁搴? 瑕佹槸鑳?br>澶氫竴浜涘叾浠栫畝鍗曠殑鏈哄埗, 鎴戜滑灝卞彲浠ュ湪鎴戜滑紼嬪簭鐨勫唴閮ㄥ紑鍙戣嚜宸辯殑鏁版嵁璁塊棶灞傘備笅闈㈣繖涓?br>渚嬪瓙, 鏄竴涓亣鎯崇殑瀵笴瀹忕殑鎵╁睍:
#get-db-schema("127.0.0.1")
#iterate-through-tables
#for-each-table
class #table-name
{
};
#end-for-each
鎴戜滑榪炴帴鏁版嵁搴撶粨鏋勫畾涔? 閬嶅巻鏁版嵁琛? 鐒跺悗瀵規瘡涓〃鍒涘緩涓涓被, 鍙秷鍑犺浠g爜灝卞畬鎴?br>浜嗚繖涓伐浣溿傝繖鏍鋒瘡嬈$紪璇戝伐紼嬬殑鏃跺? 榪欎簺綾婚兘浼氭牴鎹暟鎹簱鐨勫畾涔夊悓姝ユ洿鏂般傛樉鑰屾槗
瑙? 鎴戜滑涓嶈垂鍚圭伆涔嬪姏灝卞湪紼嬪簭鍐呴儴寤虹珛浜嗕竴涓畬鏁寸殑鏁版嵁璁塊棶灞? 鏍規湰鐢ㄤ笉鐫浠諱綍澶栭儴
宸ュ叿銆傚綋鐒惰繖縐嶄綔娉曟湁涓涓己鐐? 閭e氨鏄垜浠緱瀛︿範涓濂楁柊鐨?緙栬瘧鏃惰璦", 鍙︿竴涓己鐐?br>灝辨槸鏍規湰涓嶅瓨鍦ㄨ繖涔堜竴涓珮綰х増鐨凜棰勫鐞嗗櫒銆傞渶瑕佸仛澶嶆潅浠g爜鐢熸垚鐨勬椂鍊? 榪欎釜璇█(璇?br>鑰呮敞: 榪欓噷鎸囬澶勭悊鎸囦護, 鍗充綔鑰呮墍璇寸殑"緙栬瘧鏃惰璦")鏈韓涔熶竴瀹氫細鍙樺緱鐩稿綋澶嶆潅銆傚畠
蹇呴』鏀寔瓚沖澶氱殑搴撳拰璇█緇撴瀯銆傛瘮濡傝鎴戜滑鎯寵鐢熸垚鐨勪唬鐮佽渚濊禆鏌愪簺ftp鏈嶅姟鍣ㄤ笂鐨?br>鏂囦歡, 棰勫鐞嗗櫒灝卞緱鏀寔ftp璁塊棶, 浠呬粎鍥犱負榪欎釜浠誨姟鑰屼笉寰椾笉鍒涢犲拰瀛︿範涓闂ㄦ柊鐨勮璦,
鐪熸槸鏈夌偣璁╀漢鎭跺績(浜嬪疄涓婂凡緇忓瓨鍦ㄧ潃鏈夋鑳藉姏鐨勮璦, 榪欐牱鍋氬氨鏇存樉鑽掕艾)銆傛垜浠笉濡ㄥ啀
鐏墊椿涓鐐? 涓轟粈涔堜笉鐩存帴鐢?C/C++鑷繁浣滀負鑷繁鐨勯澶勭悊璇█鍛? 榪欐牱瀛愮殑璇? 鎴戜滑鍙?br>浠ュ彂鎸ヨ璦鐨勫己澶ц兘鍔? 瑕佸鐨勬柊涓滆タ涔熷彧涓嶈繃鏄嚑涓畝鍗曠殑鎸囩ず瀛?, 榪欎簺鎸囩ず瀛楃敤鏉?br>鍖哄埆緙栬瘧鏃朵唬鐮佸拰榪愯鏃朵唬鐮併?br>
<%
cout<<"Enter a number: ";
cin>>n;
%>
for(int i=0;i< <% n %>;i++)
{
cout<<"hello"<<endl;
}
浣犳槑鐧戒簡鍚? 鍦?lt;%鍜?>鏍囪涔嬮棿鐨勪唬鐮佹槸鍦ㄧ紪璇戞椂榪愯鐨? 鏍囪涔嬪鐨勫叾浠栦唬鐮侀兘鏄櫘閫?br>浠g爜銆傜紪璇戠▼搴忔椂, 緋葷粺浼氭彁紺轟綘杈撳叆涓涓暟, 榪欎釜鏁板湪鍚庨潰鐨勫驚鐜腑浼氱敤鍒般傝宖or寰?br>鐜殑浠g爜浼氳緙栬瘧銆傚亣瀹氫綘鍦ㄧ紪璇戞椂杈撳叆5, for寰幆鐨勪唬鐮佸皢浼氭槸:
for(int i=0;i<5; i++)
{
cout<<"hello"<<endl;
}
鍙堢畝鍗曞張鏈夋晥鐜? 涔熶笉闇瑕佸彟澶栫殑棰勫鐞嗚璦銆傛垜浠彲浠ュ湪緙栬瘧鏃跺氨鍏呭垎鍙戞尌瀹夸富璇█(
姝ゅ鏄疌/C++)鐨勫己澶ц兘鍔? 鎴戜滑鍙互寰堝鏄撳湴鍦ㄧ紪璇戞椂榪炴帴鏁版嵁搴? 寤虹珛鏁版嵁璁塊棶灞? 灝?br>鍍廕SP鎴栬匒SP鍒涘緩緗戦〉閭f牱銆傛垜浠篃鐢ㄤ笉鐫涓撻棬鐨勭獥鍙e伐鍏鋒潵鍙﹀寤虹珛宸ョ▼銆傛垜浠彲浠ュ湪
浠g爜涓珛鍗沖姞鍏ュ繀瑕佺殑宸ュ叿銆傛垜浠篃鐢ㄤ笉鐫欏捐檻寤虹珛榪欑宸ュ叿鏄笉鏄煎緱, 鍥犱負榪欏お瀹規槗
浜? 澶畝鍗曚簡銆傝繖鏍峰瓙涓嶇煡鍙互鑺傜渷澶氬皯鏃墮棿鍟娿?br>
浣犲ソ, Lisp
鍒版鍒諱負姝? 鎴戜滑鎵鐭ョ殑鍏充簬Lisp鐨勬寚紺哄彲浠ユ葷粨涓轟竴鍙ヨ瘽: Lisp鏄竴涓彲鎵ц鐨勮娉曟洿
浼樼編鐨刋ML, 浣嗘垜浠繕娌℃湁璇碙isp鏄庢牱鍋氬埌榪欎竴鐐圭殑, 鐜板湪寮濮嬭ˉ涓婅繖涓瘽棰樸?
Lisp鏈変赴瀵岀殑鍐呯疆鏁版嵁綾誨瀷, 鍏朵腑鐨勬暣鏁板拰瀛楃涓插拰鍏朵粬璇█娌′粈涔堝垎鍒傚儚71鎴栬?br>"hello"榪欐牱鐨勫? 鍚箟涔熷拰C++鎴栬匤ava榪欐牱鐨勮璦澶т綋鐩稿悓銆傜湡姝f湁鎰忔濈殑涓夌綾誨瀷鏄?br>絎﹀彿(symbol), 琛ㄥ拰鍑芥暟銆傝繖涓绔犵殑鍓╀綑閮ㄥ垎, 鎴戦兘浼氱敤鏉ヤ粙緇嶈繖鍑犵綾誨瀷, 榪樿浠嬬粛
Lisp鐜鏄庢牱緙栬瘧鍜岃繍琛屾簮鐮佺殑銆傝繖涓繃紼嬬敤Lisp鐨勬湳璇潵璇撮氬父鍙仛姹傚箋傞氳榪欎竴
鑺傚唴瀹? 瀵逛簬閫忓交鐞嗚В鍏冪紪紼嬬殑鐪熸娼滃姏, 浠ュ強浠g爜鍜屾暟鎹殑鍚屼竴鎬? 鍜岄潰鍚戦鍩熻璦鐨?br>瑙傚康, 閮芥瀬鍏墮噸瑕併備竾鍕跨瓑闂茶涔嬨傛垜浼氬敖閲忚寰楃敓鍔ㄦ湁瓚d竴浜? 涔熷笇鏈涗綘鑳借幏寰椾竴浜?br>鍚彂銆傞偅濂? 鎴戜滑鍏堣絎﹀彿銆?br>
澶т綋涓? 絎﹀彿鐩稿綋浜嶤++鎴朖ava璇█涓殑鏍囧織絎? 瀹冪殑鍚嶅瓧鍙互鐢ㄦ潵璁塊棶鍙橀噺鍊?渚嬪
currentTime, arrayCount, n, 絳夌瓑), 宸埆鍦ㄤ簬, Lisp涓殑絎﹀彿鏇村姞鍩烘湰銆傚湪C++鎴?br>Java閲岄潰, 鍙橀噺鍚嶅彧鑳界敤瀛楁瘝鍜屼笅鍒掔嚎鐨勭粍鍚? 鑰孡isp鐨勭鍙峰垯闈炲父鏈夊寘瀹規? 姣斿, 鍔?br>鍙?+)灝辨槸涓涓悎娉曠殑絎﹀彿, 鍏朵粬鐨勫儚-, =, hello-world, *絳夌瓑閮藉彲浠ユ槸絎﹀彿鍚嶃傜鍙?br>鍚嶇殑鍛藉悕瑙勫垯鍙互鍦ㄧ綉涓婃煡鍒般備綘鍙互緇欒繖浜涚鍙蜂換鎰忚祴鍊? 鎴戜滑榪欓噷鍏堢敤浼爜鏉ヨ鏄庤繖
涓鐐廣傚亣瀹氬嚱鏁皊et鏄粰鍙橀噺璧嬪?灝卞儚絳夊彿=鍦–++鍜孞ava閲岀殑浣滅敤), 涓嬮潰鏄垜浠殑渚嬪瓙:
set(test, 5) // 絎﹀彿test鐨勫間負5
set(=, 5) // 絎﹀彿=鐨勫間負5
set(test, "hello") // 絎﹀彿test鐨勫間負瀛楃涓?hello"
set(test, =) // 姝ゆ椂絎﹀彿=鐨勫間負5, 鎵浠est鐨勪篃涓?
set(*, "hello") // 絎﹀彿*鐨勫間負"hello"
濂藉儚鏈変粈涔堜笉瀵圭殑鍦版柟? 鍋囧畾鎴戜滑瀵?璧嬬粰鏁存暟鎴栬呭瓧絎︿覆鍊? 閭e仛涔樻硶鏃舵庝箞鍔? 涓嶇
鎬庝箞璇? *鎬繪槸涔樻硶鍛? 絳旀綆鍗曟瀬浜嗐侺isp涓嚱鏁扮殑瑙掕壊鍗佸垎鐗規畩, 鍑芥暟涔熸槸涓縐嶆暟鎹?br>綾誨瀷, 灝卞儚鏁存暟鍜屽瓧絎︿覆涓鏍? 鍥犳鍙互鎶婂畠璧嬪肩粰絎﹀彿銆備箻娉曞嚱鏁癓isp鐨勫唴緗嚱鏁? 榛?br>璁よ祴緇?, 浣犲彲浠ユ妸鍏朵粬鍑芥暟璧嬪肩粰*, 閭f牱*灝變笉浠h〃涔樻硶浜嗐備綘涔熷彲浠ユ妸榪欏嚱鏁扮殑鍊煎瓨
鍒板彟澶栫殑鍙橀噺閲屻傛垜浠啀鐢ㄤ吉鐮佹潵璇存槑涓涓?
*(3,4) // 3涔?, 緇撴灉鏄?2
set(temp, *) // 鎶?鐨勫? 涔熷氨鏄箻娉曞嚱鏁? 璧嬪肩粰temp
set(*, 3) // 鎶?璧嬩簣*
*(3,4) // 閿欒鐨勮〃杈懼紡, *涓嶅啀鏄箻娉? 鑰屾槸鏁板?
temp(3,4) // temp鏄箻娉曞嚱鏁? 鎵浠ユ琛ㄨ揪寮忕殑鍊間負3涔?絳変簬12
set(*, temp) // 鍐嶆鎶婁箻娉曞嚱鏁拌祴浜?
*(3,4) // 3涔?絳変簬12
鍐嶅彜鎬竴鐐? 鎶婂噺鍙風殑鍊艱祴緇欏姞鍙?
set(+, -) // 鍑忓彿(-)鏄唴緗殑鍑忔硶鍑芥暟
+(5, 4) // 鍔犲彿(+)鐜板湪鏄唬琛ㄥ噺娉曞嚱鏁? 緇撴灉鏄?鍑?絳変簬1
榪欏彧鏄婦渚嬪瓙, 鎴戣繕娌℃湁璇︾粏璁插嚱鏁般侺isp涓殑鍑芥暟鏄竴縐嶆暟鎹被鍨? 鍜屾暣鏁? 瀛楃涓?
絎﹀彿絳夌瓑涓鏍楓備竴涓嚱鏁板茍涓嶅繀鐒舵湁涓涓悕瀛? 榪欏拰C++鎴栬匤ava璇█鐨勬儏褰㈠緢涓嶇浉鍚屻?br>鍦ㄨ繖閲屽嚱鏁拌嚜宸變唬琛ㄨ嚜宸便備簨瀹炰笂瀹冩槸涓涓寚鍚戜唬鐮佸潡鐨勬寚閽? 闄勫甫鏈変竴浜涘叾浠栦俊鎭?渚?br>濡備竴緇勫弬鏁板彉閲?銆傚彧鏈夊湪鎶婂嚱鏁拌祴浜堝叾浠栫鍙鋒椂, 瀹冩墠鍏鋒湁浜嗗悕瀛? 灝卞儚鎶婁竴涓暟鍊兼垨
瀛楃涓茶祴浜堝彉閲忎竴鏍風殑閬撶悊銆備綘鍙互鐢ㄤ竴涓唴緗殑涓撻棬鐢ㄤ簬鍒涘緩鍑芥暟鐨勫嚱鏁版潵鍒涘緩鍑芥暟,
鐒跺悗鎶婂畠璧嬪肩粰絎﹀彿fn, 鐢ㄤ吉鐮佹潵琛ㄧず灝辨槸:
fn [a]
{
return *(a, 2);
}
榪欐浠g爜榪斿洖涓涓叿鏈変竴涓弬鏁扮殑鍑芥暟, 鍑芥暟鐨勫姛鑳芥槸璁$畻鍙傛暟涔?鐨勭粨鏋溿傝繖涓嚱鏁拌繕
娌℃湁鍚嶅瓧, 浣犲彲浠ユ妸姝ゅ嚱鏁拌祴鍊肩粰鍒殑絎﹀彿:
set(times-two, fn [a] {return *(a, 2)})
鎴戜滑鐜板湪鍙互榪欐牱璋冪敤榪欎釜鍑芥暟:
time-two(5) // 榪斿洖10
鎴戜滑鍏堣煩榪囩鍙峰拰鍑芥暟, 璁蹭竴璁茶〃銆備粈涔堟槸琛? 浣犱篃璁稿凡緇忓惉榪囧ソ澶氱浉鍏崇殑璇存硶銆傝〃, 涓
璦浠ヨ斀涔? 灝辨槸鎶婄被浼糥ML閭f牱鐨勬暟鎹潡, 鐢╯琛ㄨ揪寮忔潵琛ㄧず銆傝〃鐢ㄤ竴瀵規嫭鍙鋒嫭浣? 琛ㄤ腑鍏?br>绱犱互絀烘牸鍒嗛殧, 琛ㄥ彲浠ュ祵濂椼備緥濡?榪欏洖鎴戜滑鐢ㄧ湡姝g殑Lisp璇硶, 娉ㄦ剰鐢ㄥ垎鍙瘋〃紺烘敞閲?:
() ; 絀鴻〃
(1) ; 鍚竴涓厓绱犵殑琛?br> (1 "test") ; 涓ゅ厓绱犺〃, 涓涓厓绱犳槸鏁存暟1, 鍙︿竴涓槸瀛楃涓?br> (test "hello") ; 涓ゅ厓绱犺〃, 涓涓厓绱犳槸絎﹀彿, 鍙︿竴涓槸瀛楃涓?br> (test (1 2) "hello") ; 涓夊厓绱犺〃, 涓涓鍙穞est, 涓涓惈鏈変袱涓厓绱?鍜?鐨?br> ; 琛? 鏈鍚庝竴涓厓绱犳槸瀛楃涓?br>
褰揕isp緋葷粺閬囧埌榪欐牱鐨勮〃鏃? 瀹冩墍鍋氱殑, 鍜孉nt澶勭悊XML鏁版嵁鎵鍋氱殑, 闈炲父鐩鎬技, 閭e氨鏄瘯
鍥炬墽琛屽畠浠傚叾瀹? Lisp婧愮爜灝辨槸鐗瑰畾鐨勪竴縐嶈〃, 濂芥瘮Ant婧愮爜鏄竴縐嶇壒瀹氱殑XML涓鏍楓?br>Lisp鎵ц琛ㄧ殑欏哄簭鏄繖鏍風殑, 琛ㄧ殑絎竴涓厓绱犲綋浣滃嚱鏁? 鍏朵粬鍏冪礌褰撲綔鍑芥暟鐨勫弬鏁般傚鏋?br>鍏朵腑鏌愪釜鍙傛暟涔熸槸琛? 閭e氨鎸夌収鍚屾牱鐨勫師鍒欏榪欎釜琛ㄦ眰鍊? 緇撴灉鍐嶄紶閫掔粰鏈鍒濈殑鍑芥暟浣滀負
鍙傛暟銆傝繖灝辨槸鍩烘湰鍘熷垯銆傛垜浠湅涓涓嬬湡姝g殑浠g爜:
(* 3 4) ; 鐩稿綋浜庡墠闈㈠垪涓捐繃鐨勪吉鐮?(3,4), 鍗寵綆?涔?
(times-two 5) ; 榪斿洖10, times-two鎸夌収鍓嶉潰鐨勫畾涔夋槸姹傚弬鏁扮殑2鍊?br> (3 4) ; 閿欒, 3涓嶆槸鍑芥暟
(time-two) ; 閿欒, times-two瑕佹眰涓涓弬鏁?br> (times-two 3 4) ; 閿欒, times-two鍙姹備竴涓弬鏁?br> (set + -) ; 鎶婂噺娉曞嚱鏁拌祴浜堢鍙?
(+ 5 4) ; 渚濇嵁涓婁竴鍙ョ殑緇撴灉, 姝ゆ椂+琛ㄧず鍑忔硶, 鎵浠ヨ繑鍥?
(* 3 (+ 2 2)) ; 2+2鐨勭粨鏋滄槸4, 鍐嶄箻3, 緇撴灉鏄?2
涓婅堪鐨勪緥瀛愪腑, 鎵鏈夌殑琛ㄩ兘鏄綋浣滀唬鐮佹潵澶勭悊鐨勩傛庢牱鎶婅〃褰撲綔鏁版嵁鏉ュ鐞嗗憿? 鍚屾牱鐨?
璁炬兂涓涓? Ant鏄妸XML鏁版嵁褰撲綔鑷繁鐨勫弬鏁般傚湪Lisp涓? 鎴戜滑緇欒〃鍔犱竴涓墠緙'鏉ヨ〃紺烘暟
鎹?br>
(set test '(1 2)) ; test鐨勫間負涓ゅ厓绱犺〃
(set test (1 2)) ; 閿欒, 1涓嶆槸鍑芥暟
(set test '(* 3 4)) ; test鐨勫兼槸涓夊厓绱犺〃, 涓変釜鍏冪礌鍒嗗埆鏄?, 3, 4
鎴戜滑鍙互鐢ㄤ竴涓唴緗殑鍑芥暟head鏉ヨ繑鍥炶〃鐨勭涓涓厓绱? tail鍑芥暟鏉ヨ繑鍥炲墿浣欏厓绱犵粍鎴愮殑
琛ㄣ?br>
(head '(* 3 4)) ; 榪斿洖絎﹀彿*
(tail '(* 3 4)) ; 榪斿洖琛?3 4)
(head (tal '(* 3 4))) ; 榪斿洖3
(head test) ; 榪斿洖*
浣犲彲浠ユ妸Lisp鐨勫唴緗嚱鏁版兂鍍忔垚Ant鐨勪換鍔°傚樊鍒湪浜? 鎴戜滑涓嶇敤鍦ㄥ彟澶栫殑璇█涓墿灞?br>Lisp(铏界劧瀹屽叏鍙互鍋氬緱鍒?, 鎴戜滑鍙互鐢↙isp鑷繁鏉ユ墿灞曡嚜宸? 灝卞儚涓婇潰涓劇殑times-two
鍑芥暟鐨勪緥瀛愩侺isp鐨勫唴緗嚱鏁伴泦鍗佸垎綺劇畝, 鍙寘鍚簡鍗佸垎蹇呰鐨勯儴鍒嗐傚墿涓嬬殑鍑芥暟閮芥槸浣?br>涓烘爣鍑嗗簱鏉ュ疄鐜扮殑銆?br>
Lisp瀹?br>
鎴戜滑宸茬粡鐪嬪埌, 鍏冪紪紼嬪湪涓涓被浼糺sp鐨勬ā鏉垮紩鎿庢柟闈㈢殑搴旂敤銆傛垜浠氳繃綆鍗曠殑瀛楃涓插
鐞嗘潵鐢熸垚浠g爜銆備絾鏄垜浠彲浠ュ仛鐨勬洿濂姐傛垜浠厛鎻愪竴涓棶棰? 鎬庢牱鍐欎竴涓伐鍏? 閫氳繃鏌ユ壘
鐩綍緇撴瀯涓殑婧愭枃浠舵潵鑷姩鐢熸垚Ant鑴氭湰銆?br>
鐢ㄥ瓧絎︿覆澶勭悊鐨勬柟寮忕敓鎴怉nt鑴氭湰鏄竴縐嶇畝鍗曠殑鏂瑰紡銆傚綋鐒? 榪樻湁涓縐嶆洿鍔犳娊璞? 琛ㄨ揪鑳?br>鍔涙洿寮? 鎵╁睍鎬ф洿濂界殑鏂瑰紡, 灝辨槸鍒╃敤XML搴撳湪鍐呭瓨涓洿鎺ョ敓鎴怷ML鑺傜偣, 榪欐牱鐨勮瘽鍐呭瓨涓?br>鐨勮妭鐐瑰氨鍙互鑷姩搴忓垪鍖栨垚涓哄瓧絎︿覆銆備笉浠呭姝? 鎴戜滑鐨勫伐鍏瘋繕鍙互鍒嗘瀽榪欎簺鑺傜偣, 瀵瑰凡
鏈夌殑XML鏂囦歡鍋氬彉鎹€傞氳繃鐩存帴澶勭悊XML鑺傜偣銆傛垜浠彲浠ヨ秴瓚婂瓧絎︿覆澶勭悊, 浣跨敤鏇撮珮灞傛鐨?br>姒傚康, 鍥犳鎴戜滑鐨勫伐浣滃氨浼氬仛鐨勬洿蹇洿濂姐?br>
鎴戜滑褰撶劧鍙互鐩存帴鐢ˋnt鑷韓鏉ュ鐞哫ML鍙樻崲鍜屽埗浣滀唬鐮佺敓鎴愬伐鍏楓傛垨鑰呮垜浠篃鍙互鐢↙isp
鏉ュ仛榪欓」宸ヤ綔銆傛鍍忔垜浠互鍓嶆墍鐭ョ殑, 琛ㄦ槸Lisp鍐呯疆鐨勬暟鎹粨鏋? Lisp鍚湁澶ч噺鐨勫伐鍏鋒潵
蹇熸湁鏁堢殑鎿嶄綔琛?head鍜宼ail鏄渶綆鍗曠殑涓や釜)銆傝屼笖, Lisp娌℃湁璇箟綰︽潫, 浣犲彲浠ユ瀯閫?br>浠諱綍鏁版嵁緇撴瀯, 鍙浣犲師鎰忋?br>
Lisp閫氳繃瀹?macro)鏉ュ仛鍏冪紪紼嬨傛垜浠啓涓緇勫畯鏉ユ妸浠誨姟鍒楄〃(to-do list)杞崲涓轟笓鐢ㄩ
鍩熻璦銆?br>
鍥炴兂涓涓嬩笂闈o-do list鐨勪緥瀛? 鍏禭ML鐨勬暟鎹牸寮忔槸榪欐牱鐨?
<todo name = "housework">
<item priority = "high">Clean the hose</item>
<item priority = "medium">Wash the dishes</item>
<item priority = "medium">Buy more soap</item>
</todo>
鐩稿簲鐨剆琛ㄨ揪寮忔槸榪欐牱鐨?
(todo "housework"
(item (priority high) "Clean the house")
(item (priority medium) "Wash the dishes")
(item (priority medium) "Buy more soap"))
鍋囪鎴戜滑瑕佸啓涓涓換鍔¤〃鐨勭鐞嗙▼搴? 鎶婁換鍔¤〃鏁版嵁瀛樺埌涓緇勬枃浠墮噷, 褰撶▼搴忓惎鍔ㄦ椂, 浠?br>鏂囦歡璇誨彇榪欎簺鏁版嵁騫舵樉紺虹粰鐢ㄦ埛銆傚湪鍒殑璇█閲?姣斿璇碕ava), 榪欎釜浠誨姟璇ユ庝箞鍋? 鎴戜滑
浼氳В鏋怷ML鏂囦歡, 浠庝腑寰楀嚭浠誨姟琛ㄦ暟鎹? 鐒跺悗鍐欎唬鐮侀亶鍘哫ML鏍? 鍐嶈漿鎹負Java鐨勬暟鎹粨鏋?br>(鑰佸疄璁? 鍦↗ava閲岃В鏋怷ML鐪熶笉鏄歡杞繪澗鐨勪簨鎯?, 鏈鍚庡啀鎶婃暟鎹睍紺虹粰鐢ㄦ埛銆傜幇鍦ㄥ鏋?br>鐢↙isp, 璇ユ庝箞鍋?
鍋囧畾瑕佺敤鍚屾牱鎬濊礬鐨勫寲, 鎴戜滑澶ф浼氱敤Lisp搴撴潵瑙f瀽XML銆俋ML瀵規垜浠潵璇村氨鏄竴涓狶isp
鐨勮〃(s琛ㄨ揪寮?, 鎴戜滑鍙互閬嶅巻榪欎釜琛? 鐒跺悗鎶婄浉鍏蟲暟鎹彁浜ょ粰鐢ㄦ埛銆傚彲鏄? 鏃㈢劧鎴戜滑鐢?br>Lisp, 灝辨牴鏈病鏈夊繀瑕佸啀鐢╔ML鏍煎紡淇濆瓨鏁版嵁, 鐩存帴鐢╯琛ㄨ揪寮忓氨濂戒簡, 榪欐牱灝辨病鏈夊繀瑕佸仛
杞崲浜嗐傛垜浠篃鐢ㄤ笉鐫涓撻棬鐨勮В鏋愬簱, Lisp鍙互鐩存帴鍦ㄥ唴瀛橀噷澶勭悊s琛ㄨ揪寮忋傛敞鎰? Lisp
緙栬瘧鍣ㄥ拰.net緙栬瘧鍣ㄤ竴鏍? 瀵筁isp紼嬪簭鏉ヨ, 鍦ㄨ繍琛屾椂鎬繪槸闅忔椂鍙敤鐨勩?br>
浣嗘槸榪樻湁鏇村ソ鐨勫姙娉曘傛垜浠敋鑷充笉鐢ㄥ啓琛ㄨ揪寮忔潵瀛樺偍鏁版嵁, 鎴戜滑鍙互鍐欏畯, 鎶婃暟鎹綋浣滀唬
鐮佹潵澶勭悊銆傞偅璇ユ庝箞鍋氬憿? 鐪熺殑綆鍗曘傚洖鎯充竴涓? Lisp鐨勫嚱鏁拌皟鐢ㄦ牸寮?
(function-name arg1 arg2 arg3)
鍏朵腑姣忎釜鍙傛暟閮芥槸s琛ㄨ揪寮? 姹傚間互鍚? 浼犻掔粰鍑芥暟銆傚鏋滄垜浠敤(+ 4 5)鏉ヤ唬鏇縜rg1,
閭d箞, 紼嬪簭浼氬厛姹傚嚭緇撴灉, 灝辨槸9, 鐒跺悗鎶?浼犻掔粰鍑芥暟銆傚畯鐨勫伐浣滄柟寮忓拰鍑芥暟綾諱技銆備富瑕?br>鐨勫樊鍒槸, 瀹忕殑鍙傛暟鍦ㄤ唬鍏ユ椂涓嶆眰鍊箋?br>
(macro-name (+ 4 5))
榪欓噷, (+ 4 5)浣滀負涓涓〃浼犻掔粰瀹? 鐒跺悗瀹忓氨鍙互浠繪剰澶勭悊榪欎釜琛? 褰撶劧涔熷彲浠ュ瀹冩眰
鍊箋傚畯鐨勮繑鍥炲兼槸涓涓〃, 鐒跺悗鏈夌▼搴忎綔涓轟唬鐮佹潵鎵ц銆傚畯鎵鍗犵殑浣嶇疆, 灝辮鏇挎崲涓鴻繖涓?br>緇撴灉浠g爜銆傛垜浠彲浠ュ畾涔変竴涓畯鎶婃暟鎹浛鎹負浠繪剰浠g爜, 姣旀柟璇? 鏇挎崲涓烘樉紺烘暟鎹粰鐢ㄦ埛
鐨勪唬鐮併?br>
榪欏拰鍏冪紪紼? 浠ュ強鎴戜滑瑕佸仛鐨勪換鍔¤〃紼嬪簭鏈変粈涔堝叧緋誨憿? 瀹為檯涓? 緙栬瘧鍣ㄤ細鏇挎垜浠伐浣?
璋冪敤鐩稿簲鐨勫畯銆傛垜浠墍瑕佸仛鐨? 浠呬粎鏄垱寤轟竴涓妸鏁版嵁杞崲涓洪傚綋浠g爜鐨勫畯銆?br>
渚嬪, 涓婇潰鏇劇粡灝嗚繃鐨凜鐨勬眰涓夋鏂圭殑瀹? 鐢↙isp鏉ュ啓鏄繖鏍峰瓙:
(defmacro triple (x)
`(+ ~x ~x ~x))
(璇戞敞: 鍦–ommon Lisp涓? 姝ゅ鐨勫崟寮曞彿搴斿綋鏄弽鍗曞紩鍙? 鎰忔濇槸瀵硅〃涓嶆眰鍊? 浣嗗彲浠ュ
琛ㄤ腑鏌愬厓绱犳眰鍊? 璁板彿~琛ㄧず瀵瑰厓绱爔姹傚? 榪欎釜姹傚艱鍙峰湪Common Lisp涓簲褰撴槸閫楀彿銆?br>鍙嶅崟寮曞彿鍜屽崟寮曞彿鐨勫尯鍒槸, 鍗曞紩鍙鋒爣璇嗙殑琛? 鍏朵腑鐨勫厓绱犻兘涓嶆眰鍊箋傝繖閲屼綔鑰呮墍鐢ㄧ殑璁?br>鍙鋒槸鑷繁鍙戞槑鐨勪竴縐峀isp鏂硅█Blaise, 鍜宑ommon lisp鐣ユ湁涓嶅悓, 浜嬪疄涓? 鍙戞槑鏂硅█鏄?br>lisp楂樻墜鐙湁鐨勪箰瓚? 寰堝鐙傜儹鍒嗗瓙閮界儹琛瘋繖鏍峰仛銆傛瘮濡侾aul Graham灝卞彂鏄庝簡ARC, 璁稿
璁板彿姣斾紶緇熺殑Lisp綆媧佸緱澶? 鏄懼緱姣旇緝鐜頒唬)
鍗曞紩鍙風殑鐢ㄥ鏄姝㈠琛ㄦ眰鍊箋傛瘡嬈$▼搴忎腑鍑虹幇triple鐨勬椂鍊?
(triple 4)
閮戒細琚浛鎹㈡垚:
(+ 4 4 4)
鎴戜滑鍙互涓轟換鍔¤〃紼嬪簭鍐欎竴涓畯, 鎶婁換鍔℃暟鎹漿鎹負鍙墽琛岀爜, 鐒跺悗鎵ц銆傚亣瀹氭垜浠殑杈?br>鍑烘槸鍦ㄦ帶鍒跺彴:
(defmacro item (priority note)
`(block
(print stdout tab "Prority: " ~(head (tail priority)) endl)
(print stdout tab "Note: " ~note endl endl)))
鎴戜滑鍒涢犱簡涓涓潪甯稿皬鐨勬湁闄愮殑璇█鏉ョ鐞嗗祵鍦↙isp涓殑浠誨姟琛ㄣ傝繖涓璦鍙敤鏉ヨВ鍐崇壒
瀹氶鍩熺殑闂, 閫氬父縐頒箣涓篋SLs(鐗瑰畾棰嗗煙璇█, 鎴栦笓鐢ㄩ鍩熻璦)銆?br>
鐗瑰畾棰嗗煙璇█
鏈枃璋堝埌浜嗕袱涓壒瀹氶鍩熻璦, 涓涓槸Ant, 澶勭悊杞歡鏋勯犮備竴涓槸娌¤搗鍚嶅瓧鐨? 鐢ㄤ簬澶?br>鐞嗕換鍔¤〃銆備袱鑰呯殑宸埆鍦ㄤ簬, Ant鏄敤XML, XML瑙f瀽鍣? 浠ュ強Java璇█鍚堝湪涓璧鋒瀯閫犲嚭鏉?br>鐨勩傝屾垜浠殑榪蜂綘璇█鍒欏畬鍏ㄥ唴宓屽湪Lisp涓? 鍙秷鍑犲垎閽熷氨鍋氬嚭鏉ヤ簡銆?br>
鎴戜滑宸茬粡璇磋繃浜咲SL鐨勫ソ澶? 榪欎篃灝辨槸Ant鐢╔ML鑰屼笉鐩存帴鐢↗ava鐨勫師鍥犮傚鏋滀嬌鐢↙isp,
鎴戜滑鍙互浠繪剰鍒涘緩DSL, 鍙鎴戜滑闇瑕併傛垜浠彲浠ュ垱寤虹敤浜庣綉绔欑▼搴忕殑DSL, 鍙互鍐欏鐢ㄦ埛
娓告垙, 鍋氬浐瀹氭敹鐩婅錘鏄?fixed income trade), 瑙e喅铔嬬櫧璐ㄦ姌鍙犻棶棰? 澶勭悊浜嬪姟闂, 絳?br>絳夈傛垜浠彲浠ユ妸榪欎簺鍙犳斁鍦ㄤ竴璧? 閫犲嚭涓涓璦, 涓撻棬瑙e喅鍩轟簬緗戠粶鐨勮錘鏄撶▼搴? 鏃㈡湁緗?br>緇滆璦鐨勪紭鍔? 鍙堟湁璐告槗璇█鐨勫ソ澶勩傛瘡澶╂垜浠兘浼氭敹鑾瘋繖縐嶆柟娉曞甫緇欐垜浠殑鐩婂, 榪滆繙
瓚呰繃Ant鎵鑳界粰浜堟垜浠殑銆?br>
鐢―SL瑙e喅闂, 鍋氬嚭鐨勭▼搴忕簿綆, 鏄撲簬緇存姢, 瀵屾湁寮規с傚湪Java閲岄潰, 鎴戜滑鍙互鐢ㄧ被鏉?br>澶勭悊闂銆傝繖涓ょ鏂規硶鐨勫樊鍒湪浜? Lisp浣挎垜浠揪鍒頒簡涓涓洿楂樺眰嬈$殑鎶借薄, 鎴戜滑涓嶅啀鍙?br>璇█瑙f瀽鍣ㄦ湰韜殑闄愬埗, 姣旇緝涓涓嬬敤Java搴撶洿鎺ュ啓鐨勬瀯閫犺剼鏈拰鐢ˋnt鍐欑殑鏋勯犺剼鏈叾闂?br>鐨勫樊鍒傚悓鏍風殑, 姣旇緝涓涓嬩綘浠ュ墠鎵鍋氱殑宸ヤ綔, 浣犲氨浼氭槑鐧絃isp甯︽潵鐨勫ソ澶勩?br>
鎺ヤ笅鏉?br>
瀛︿範Lisp灝卞儚鎴樹簤涓簤澶哄北澶淬傚敖綆″湪鐢佃剳縐戝棰嗗煙, Lisp宸茬粡綆楁槸涓闂ㄥ彜鑰佺殑璇█, 鐩?br>鍒扮幇鍦ㄤ粛鐒跺緢灝戞湁浜虹湡鐨勬槑鐧借鎬庢牱緇欏垵瀛﹁呰鎺圠isp銆傚敖綆isp鑰佹墜浠敖浜嗗緢澶у姫鍔?
浠婂ぉ鏂版墜瀛︿範Lisp浠嶇劧鏄洶闅鵑噸閲嶃傚ソ鍦ㄧ幇鍦ㄤ簨鎯呮鍦ㄥ彂鐢熷彉鍖? Lisp鐨勮祫婧愭鍦ㄨ繀閫熷
鍔? 闅忕潃鏃墮棿鎺ㄧЩ, Lisp灝嗕細瓚婃潵瓚婂彈鍏蟲敞銆?br>
Lisp浣夸漢瓚呰秺騫沖焊, 璧板埌鍓嶆部銆傚浼歀isp鎰忓懗鐫浣犺兘鎵懼埌鏇村ソ鐨勫伐浣? 鍥犱負鑱槑鐨勯泧涓諱細
琚綘涓庝紬涓嶅悓鐨勬礊瀵熷姏鎵鎵撳姩銆傚浼歀isp涔熷彲鑳芥剰鍛崇潃鏄庡ぉ浣犲彲鑳戒細琚В闆? 鍥犱負浣犳繪槸
寮鴻皟, 濡傛灉鍏徃鎵鏈夎蔣浠墮兘鐢↙isp鍐? 鍏徃灝嗕細濡備綍鍗撹秺, 鑰岃繖浜涜瘽浣犵殑鍚屼簨浼氬惉鐑︾殑銆?br>Lisp鍊煎緱鍔姏瀛︿範鍚? 閭d簺宸茬粡瀛︿細Lisp鐨勪漢閮借鍊煎緱, 褰撶劧, 榪欏彇鍐充簬浣犵殑鍒ゆ柇銆?br>
浣犵殑鐪嬫硶鍛?
榪欑瘒鏂囩珷鍐欏啓鍋滃仠, 鐢ㄤ簡鍑犱釜鏈堟墠鏈緇堝畬鎴愩傚鏋滀綘瑙夊緱鏈夎叮, 鎴栬呮湁浠涔堥棶棰? 鎰忚鎴?br>寤鴻, 璇風粰鎴戝彂閭歡coffeemug@gmail.com, 鎴戜細寰堥珮鍏存敹鍒頒綘鐨勫弽棣堛?
]]>
絎竴嬈℃媴璧瘋矗浠?br>絎竴嬈℃曡嚜宸變笉琛?br>絎竴嬈℃湁閭d箞涓鐐圭悊瑙e埌搴曚粈涔堟槸涓葷▼
榪欎竴澶╀粎浣滅邯蹇?)