DOT DSL

DOT DSL

困難

說明

領域特定語言(DSL)是為特定領域最佳化的小型語言。由於 DSL 有明確的目標,它能讓撰寫者宣告自己_想要什麼_,而不是_如何做_,因此能大幅提升生產力與理解度。

這類語言常被應用的一個問題領域,是複雜的自訂與設定。

舉例來說,DOT 語言讓你可以用文字描述一張圖,接著再由 Graphviz 的其中一個工具(例如 dot)把它轉換成圖片。一個簡單的圖看起來像這樣:

graph {
    graph [bgcolor="yellow"]
    a [color="red"]
    b [color="blue"]
    a -- b [color="green"]
}

把這段內容放進檔案 example.dot,然後執行 dot example.dot -T png -o example.png,就會產生一張 example.png 圖片,裡面是一個紅色和藍色的圓圈,被一條綠線連接,背景則是黃色。

請撰寫一個類似 Graphviz dot 語言的領域特定語言。

我們的 DSL 和 Graphviz dot 語言相似,因為我們的 DSL 會用來建立圖的資料結構。不過,和 DOT 語言不同的是,我們的 DSL 是內部 DSL,只能在我們的語言裡使用。

深入了解內部 DSL 與外部 DSL 的差異。


出處

Wikipedia連結會在新視窗或分頁中開啟
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Elixir Exercism

準備好開始 DOT DSL 了嗎?

註冊 Exercism,透過 58 個概念168 個練習 和真人引導來學習並精通 Elixir,全部免費。