歡迎您光臨本站 註冊首頁

當函式沒有形參時,定義和呼叫時都可以省去括號,比如:


 func 問好 {
   print('吃了麼')
 }
 問好 
 

感覺這個設計挺合理,但不知這種情況是否會多見。

本週還實現了字典型別的基本功能,與 Python 的基本一致:


 電話 = { : }
 電話['小明'] = 1357
 電話 = {'小明': 1234, '小紅': 4321}

值得一提的是,初始化空字典時 Python 的方式是d = {},而木蘭的的空字典是這樣表示:{:}

因為{}在木蘭中是內容為空的“程式碼塊”,比如:


 func 空函式 {} 

也許這一設計是為了避免語法分析的麻煩,

因此,用{}代替了 Python 的縮排這一語法改動,就影響了空字典的初始化方法。前者對程式碼視覺效果的影響比後者更大,使用頻度也更多。可見,程式語言的特性和語法設計的取捨值得通盤考慮,因為有可能會牽一髮動全身,何取何舍應該由語言的目標使用者和應用領域等等決定。

於是想到,程式語言設計參考自然語言語法和用詞,不僅能增進程式碼可讀性,各語法元素可能更融洽和有持久生命力,因為自然語言本身經過了千百年的演化和考驗。

程式碼統計

下面是幾個主要部分的程式碼行數統計,格式為:上週->本週。

  • 測試
    • 木蘭測試用例:1068 -> 1075
    • 執行測試.py,檢驗所有木蘭測試程式碼片段:144 -> 145
    • 未變
      • test語法樹.py,確保生成的語法樹與原始版本一致:63
  • 實現:1898 -> 1941
    • 分析器/語法分析器.py:792 -> 824
    • 分析器/語法樹.py功用/除錯輔助.py,包括對 ast 庫的中文封裝:251 -> 260
    • 未變
      • 分析器/詞法分析器.py:184
      • 演示高亮.py:98
      • 環境.py,載入木蘭模組:87
      • 中.py,主程式:35

[admin ]

來源:OsChina
連結:https://www.oschina.net/news/117081/grasspy-updated
木蘭程式語言重現無引數函式、字典基本功能,語法設計的取捨有感已經有121次圍觀

http://coctec.com/news/all/show-post-242193.html