日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Scheme 语言 编程思想上

發(fā)布時間:2023/12/20 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Scheme 语言 编程思想上 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Scheme 編程語言是一種Lisp方言,誕生于1975年,由?MIT?的 Gerald J. Sussman 和 Guy L. Steele Jr. 完成。它是現(xiàn)代兩大Lisp方言之一;另一個方言是Common Lisp。 Scheme遵循極簡主義哲學,以一個小型語言核心作為標準,加上各種強力語言工具(語法糖)來擴展語言本身。 MIT曾用Scheme作為計算機系入門課程的編程語言。計算機程序語言界著名的魔法書《計算機程序的構造和解釋》(又稱SICP)正是利用Scheme來解釋程序設計。 歷史悠久的Scheme依然活躍,擁有針對各種計算機平臺和環(huán)境的實現(xiàn),例如Racket、Guile、MIT Scheme、Chez Scheme等。Guile是GNU工具體系里最重要的部件之一,被許多自由軟件和開源軟件作為內(nèi)置腳本語言使用。 在Scheme 語言作為腳本語言,能夠很快的對代碼進行編譯,無需復雜的檢查變量以及函數(shù)或者方法的類型,而且對于這種函數(shù)式編程,邏輯思路也是非常的明確。在我初步學習的過程中只是利用了java jdk中的kawa工具包進行簡單的函數(shù)式編程

? ? ?Scheme語言在實際中的用途也是比較多的,在我們的圖形編輯軟件GMIP中廣泛應用,在GMIP中以Scheme作為腳本語言應用非常廣泛。

1、一些Scheme的基本用法

1)cons:把元素加到鏈表里;(cons 1 '(2 3 4 5)),有兩個參數(shù).

2)quote:引用用來阻止記號被求值,它是用來用符號或者表原封不動的傳遞給程序,而不是求值之后傳遞,由于用的次數(shù)很多,被記為 ’ ,例如,(+ 2 3)會被求值為5,然而(quote (+ 2 3))則向程序返回(+ 2 3)本身。’(+ 2 3)代表列表(+ 2 3)本身

3append:把兩個或多個鏈表組成一個鏈表;(append '( 1 2) '(3 4))? return (1 2 3 4)

4list:把兩個或多個鏈表連成一個鏈表;(list '(1 2) '(3 4)) return ((1 2) (3 4))

5)lambda:用于定義過程。lambda需要至少一個的參數(shù),第一個參數(shù)是由定義的過程所需的參數(shù)組成的表。lambda的語句體都是隱式的begin代碼結構

6?let:用于定義局部變量,格式 (let binds body),變量的作用域scope為body體,[binds] → ((p1 v1) (p2 v2) ...)

7map:映射是將同樣的行為應用于表所有元素的過程。R5RS定義了兩個映射過程:其一為返回轉化后的表的map過程,另一為注重副作用的for-each過程:(mapprocedure list1 list2 ...)

8apply:是將一個過程應用于一個表。此函數(shù)具有任意多個參數(shù),但首參數(shù)和末參數(shù)分別應該是一個過程和一個表

9cond:類似于C語言的的case操作,(cond ((測試) 操作) … (else 操作))

10and:and后可以有多個參數(shù),只有它后面的參數(shù)的表達式的值都為#t時,它的返回值才為#t,如果表達式的值都不是boolean型的話,返回最后一個表達式的值> (and?#t?5) 5

2、Scheme中數(shù)據(jù)類型

Scheme提供了大量通用的數(shù)據(jù)類型,整數(shù),浮點數(shù),復數(shù),有理數(shù),字符串,布爾變量,散列,數(shù)組,矢量,點對,和列表。本次主要研究后幾種數(shù)據(jù)結構。

(1)首先是點對,比如(1,2)是一個點對,一個點對包含兩個指針,每個指針指向一個值。我們用函數(shù)cons構造點對。比如說(cons 1 2)就構造出點對(1 . 2)。因為點對總是又函數(shù)cons構造,點對又叫做cons cell。點對左邊的值可以用函數(shù)car取出來,右邊的值可以由函數(shù)cdr取出來。

如果一個點對右邊不是一個值,而是一個指針,指向另外一個列表,我們就得到了列表。比如下面的圖表示列表(1 2 3 4),實際上由點對構成:(1 . (2 . (3 . 4. ‘())。可以看出,列表本質(zhì)是單向鏈表,圖示如下:



總結

以上是生活随笔為你收集整理的Scheme 语言 编程思想上的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。