來自機(jī)器之心
粵語編程語言 ——The Cantonese Programming Language。看來大家都是 C 語言啊。
最近十分搞笑的飲茶梗,刷新了大家對(duì)粵語的認(rèn)知。
其實(shí)粵語一直都是一個(gè)隱含著幽默感的方言,想想「旺角卡門」中的烏蠅哥,是不是腦海中已經(jīng)回蕩起了學(xué)友哥的四字語音?而且毋庸置疑,粵語還是需要保護(hù)的文化遺產(chǎn)。那么,今天我們就給大家介紹一個(gè)有趣的粵語編程語言 GitHub 項(xiàng)目,其開發(fā)者 Stepfen Shawn 似乎(自稱)是來自廣州的十六歲高中生。目前,該項(xiàng)目的 star 量已經(jīng)達(dá)到了 600+。雖然工作中不會(huì)用粵語寫代碼,但是空閑時(shí)玩一下粵語編程,難道不是件樂事嗎?



「落操場玩跑步...... 玩到 | 結(jié)束 | 為止」這個(gè)語句相當(dāng)于一個(gè) loop,「結(jié)束」就是 loop 的條件。而類似 break 的用法有三種:「收工」、「辛苦曬啦」、「同我躝」。前兩個(gè)很好理解,而第三個(gè)中的「躝」是「滾」的意思,所以使用哪個(gè)完全取決于你的心情。

「要做咩」直觀地告訴計(jì)算機(jī)該函數(shù)接下來要做什么,「搞掂」是「搞定」的意思,起到 end 的作用。
「掟個(gè)...... 來睇下」的作用是拋出一個(gè)異常,其中「掟」有仍或丟的意思。而「諗」的意思是「想」,讓計(jì)算機(jī)作判斷。
「執(zhí)嘢...... 揾到...... 執(zhí)手尾」對(duì)應(yīng)著 try、except、finally。「執(zhí)嘢」是收拾房間的意思,「揾到」是指收拾中找到破爛了,至于「執(zhí)手尾」,就是選擇丟不丟這個(gè)破爛了。
講真,這個(gè)「使下」,比 import 更形象。
沒想到吧,居然還能進(jìn)行面向?qū)ο缶幊獭!竵凇沟囊馑际恰杆梗敢粋€(gè)對(duì)象;「佢嘅」意思是「它的」,能夠用來構(gòu)造屬性;「佢識(shí)得」意思是「它會(huì)」,用來構(gòu)造類的方法;「老豆」就是「爹」的意思,用于描述繼承關(guān)系。最后用「明白未啊」做結(jié)束語問計(jì)算機(jī)你明白了嗎,會(huì)讓計(jì)算機(jī)倍感親切,接受介紹給它的對(duì)象。
這里的「Deo 哥」很明顯是個(gè)棧,「頂你」就是放入棧,「丟你」就是從棧取出。下面列舉了一些粵語編程的進(jìn)階玩法,比如二分查找、線性查找、冒泡排序、插入排序、KNN 等算法的實(shí)現(xiàn)。能看到這里,說明你很感興趣啊,那就繼續(xù)學(xué)吧。





下面是作者實(shí)現(xiàn)的網(wǎng)頁和 App 示例:

粵語編程語言運(yùn)行在 Python 虛擬機(jī)上,支持 Python 3,使用方式如下:
還可以轉(zhuǎn)化為 Python 運(yùn)行:


最后,關(guān)注公眾號(hào)互聯(lián)網(wǎng)架構(gòu)師,在后臺(tái)回復(fù):2T,可以獲取我整理和創(chuàng)作的 Java 系列教程非常齊全。