七周七語言(4)
最近這一段時間一直在了解prolog這一門極其有意思的邏輯編程語言,和以往的命令式編程語言完全不一樣。prolog是聲明式的,個人覺得更像一門DSL語言,邏輯方面的DSL語言。
prolog語言沒有代碼,其實就是三點
事實:定義了一些邏輯概念,這些恒為真,不需要任何證明,就像歐式幾何里面的公里一樣。
規則:定義基礎事實之間的規則。有點像歐式幾何的推理過程,由基礎公里可以推導出來一些定理。
目標:也就是問題,通過事實和定義的規則推導出來問題的解決方案,有點像數學證明題
這一門語言最核心的就是遞歸。完全是通過遞歸去解決目標問題。
遞歸有兩個重要元素:邊界條件,遞歸定義
也就是不能無限遞歸下去,如果在單位時間內遞歸還沒有結束,則問題無界
遞歸定義其實就是算法問題了。
prolog比較適合做一些邏輯方面和規則方面的編程,能夠解決人工智能相關的,準備稍微學習一下,看上去比較簡單,主要鍛煉抽象思維能力。
浙公網安備 33010602011771號