s-表示式是目前程式語言中少有的表達方式(目前我所知的也只有lisp),那麼,什麼是s-表示式呢,我們簡單來做乙個分享。
算術表示式主要有字首表示法、中綴表示法和字尾表示法三種。
字首表示式就是不含括號的算術表示式,而且它是將運算子寫在前面,運算元寫在後面的表示式,為紀念其發明者波蘭數學家jan lukasiewicz也稱為「波蘭式」。例如,- 1 + 2 3,它等價於1-(2+3)。複雜一點的(1+2)*4-(9-6)/3,字首表示式為 - * + 1 2 4 / - 9 6 3。
中綴表示式(或中綴記法)是乙個通用的算術或邏輯公式表示方法,操作符是以中綴形式處於運算元的中間(例:3 + 4),中綴表示式是人們常用的算術表示方法。與字首表示式(例:+ 3 4)或字尾表示式(例:3 4 +)相比,中綴表示式不容易被計算機解析,但仍被許多程式語言使用,因為它符合人們的普遍用法。與字首或字尾記法不同的是,中綴記法中括號是必需的。計算過程中必須用括號將操作符和對應的運算元括起來,用於指示運算的次序。
字尾表示式就是不包含括號,運算子放在兩個運算物件的後面,所有的計算按運算子出現的順序,嚴格從左向右進行(不再考慮運算子的優先規則,如:(2 + 1) * 3 ,即2 1 + 3 *
而s-表示式呢,與字首表示式有些類似,都是將運算子寫在前面,運算元寫在後面如下圖:
不同之處呢,s-表示式在lisp中既用作**,也用作資料(見mccarthy recursive functions of symbolic expressions ),例如:
在該圖中(- 5 3)既作為該項運算的**,又作為與4相加的資料。
據說,最初,麥卡錫在設計語言時,曾經試圖加入所謂的「m 表示式」;結果,大家用了一段時間之後都覺得這種s-表示式很好用,並慢慢的習慣了這種方式,麥卡錫的這一計畫就被無限的延期了。這也算是有心栽花花不發,無心插柳柳成蔭了。
中綴表示式 字首表示式 字尾表示式
中綴表示式 中綴記法 中綴表示式是一種通用的算術或邏輯公式表示方法,操作符以中綴形式處於運算元的中間。中綴表示式是人們常用的算術表示方法。雖然人的大腦很容易理解與分析中綴表示式,但對計算機來說中綴表示式卻是很複雜的,因此計算表示式的值時,通常需要先將中綴表示式轉換為字首或字尾表示式,然後再進行求值。...
中綴表示式 字尾表示式 字首表示式
正如我們常常潛意識認為我們所說的數字都是十進位制,對於數字的其他進製感覺不正確一樣,其實只是我們不熟悉而已,其他進製其實也不過就是一種對資料的表達方式而已。對於我們的表示式也是一樣。eg 表示式2 3 5 7 我們上面所看到的也就是我們平時常用的書寫表示式的方式就是我們所謂的 中綴表示式 字首表示式...
字首表示式 中綴表示式 字尾表示式。
表示式 就是式子。是由數字 算符 數字分組符號 自由量和約束量組成的。人們一般習慣寫出來的式子,叫做中綴表示式。因為在計算機中,不方便表達 數字分組符號。所以 波蘭人發明了一種把去符號化的表示式。字首表示式 字首表示式 沒有括號,算符在前 數字在後。波蘭數學家發明,為了紀念,又叫做波蘭式。跟其對應,...