freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

函數(shù)式編程之clojure(v102)(已修改)

2025-10-10 13:25 本頁面
 

【正文】 郝林( @特價蘿卜) 來自搜狐技術(shù)部 這就是 Clojure ? Clojure是 ? 一種 Lisp方言(最初只基于 JVM構(gòu)建,現(xiàn)在也有 CLR和 JS的版本) ? 開源語言(使用 Eclipse Public License v ) ? 動態(tài)類型語言(標(biāo)識類型是可選操作) ? 函數(shù)式語言(但提供了安全的可變狀態(tài)操作方法) ? 作者: Rich Hickey ? 2020年 10月第一次發(fā)布 ? 官方網(wǎng)站: ? 中文用戶組網(wǎng)站: 這就是 Clojure ? Clojure擁有 ? 可以在 JDK (及以上)上構(gòu)建和運(yùn)行的代碼 ? 一個穩(wěn)定、高效和跨操作系統(tǒng)的運(yùn)行平臺( JVM) ? 可以無縫使用豐富的 Java類庫和資源 ? 可以為其他 Java代碼提供 API ? 極少的語法,非常小的核心,高擴(kuò)展性 ? 代碼即數(shù)據(jù) (codeasdata) amp。 句法抽象 ? 不可變狀態(tài) amp。 高階函數(shù) ? 強(qiáng)大的宏! 這就是 Clojure ? Clojure表達(dá)式 在 Clojure中,任何語句都是表達(dá)式,表達(dá)式的計算結(jié)果為一個值。 ? “ (”和“ )”以及被它們括起來的內(nèi)容被叫做列表( List),列表中的第一個位置被叫做函數(shù)位( function position)。調(diào)用列表會使它被求職并將值返回給調(diào)用方。 ? 符號( Symbols)在當(dāng)前范圍中被評估成一個命名值,這個當(dāng)前范圍可能是一個函數(shù)、一個 Java類、一個宏或一個 special form。 ? 所有其他的表達(dá)式都被評估為一個它們所表示的字面值。 這就是 Clojure ? Clojure基本語法 在 Clojure中,所有的表達(dá)式調(diào)用只遵循一個規(guī)則:列表中的第一個值是操作符,其余的都是給這個操作符的參數(shù)。 這就是 Clojure ? Clojure數(shù)據(jù)類型 數(shù)據(jù)類型 例子 String Clojure Boolean true, false Nil nil Character \a, \u00ff, \o41, \tab Keyword :tag, :doc Symbol (defn sum [amp。 numbers] (apply + numbers))中的 sum等 Regular expression (reseq (\d+)(\d+) 13) 。=([13 1 3]) Number ? 42, 0xff, 2r111, 040 。 long ? , 。 double ? 42N 。 ? 。 ? 22/7 。 這就是 Clojure ? Clojure集合數(shù)據(jù)結(jié)構(gòu) 所有集合數(shù)據(jù)結(jié)構(gòu)都可任意嵌套,組成更復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。 集合數(shù)據(jù)結(jié)構(gòu) 例子 說明 List 39。(a b :name ), (list 1 2 3) 鏈表 Vector [39。a 39。b :name ], (vec (range 3)) 類似數(shù)組,索引訪問 Map {:name Clojure :age 5} key/value結(jié)構(gòu) Set {1 2 3} 集合,消除重復(fù) ‘({:Author {:name Hao Lin, :dept Tech}} A member of MySohu team. [Java Clojure Go]) 。= ({:Author {:name Hao Lin, :dept Tech}} A member of MySohu team. [Java Clojure Go]) 這就是 Clojure ? Clojure代碼 ? 列表、表達(dá)式( form)與求值: (op arg1 arg2 arg3) 其中 op可以 是 : special form、 function以及 macro。 (println Hello, Clojure !) 。= Hello, Clojure ! 。= nil 這就是 Clojure ? Clojure代碼 ? 定義一個值: (def name value) 用 def來定義值。 除了把“ =”替換為“(”和“)”,貌似沒什么特殊。 (def number 123) (println “The number:” number) 。= The number: 123 。= nil 這就是 Clojure ? Clojure代碼 ? 定義一個函數(shù): (defn name ―document/explain‖ [arg1 arg2 arg3] body) 用 defn來定義函數(shù)。 defn后面依次跟函數(shù)名、函數(shù)說明(可選)、參數(shù)列表和函數(shù)體。 body這里可以嵌套任意的表達(dá)式調(diào)用。 這就是 Clojure ? Clojure代碼 ? 定義一個函數(shù): (defn countword Count every word of parameter 39。s39。. [s] (reduce (assoc %1 %2 (inc (%1 %2 0))) {} (reseq \w+ s))) (countword Clojure is a a dynamic programming language) 。= {language 1, programming 1, dynamic 1, a 2, is 1, Clojure 1} 這就是 Clojure ? Clojure代碼 ? 定義一個函數(shù): ((fn [s] (reduce (assoc %1 %2 (inc (%1 %2 0))) {} (reseq \w+ s))) Clojure is a a dynamic programming language) 。= {language 1, programming 1, dynamic 1, a 2, is 1, Clojure 1} ((reduce (fn [m k](assoc m k (inc (m k 0)))) {} (reseq \w+ %)) Clojure is a a dynamic programming language) 。= {language 1, programming 1, dynamic 1, a 2, is 1, Clojure 1} 這就是 Clojure ? Clojure代碼 ? special form: special form是 并不遵從一般 form的組成規(guī)則和執(zhí)行規(guī)則 的特殊 form。它是 Clojure中最基本的計算操作,是構(gòu)建其他Clojure代碼的基礎(chǔ) 。 special form包括: def、 if、 do、 let、 quote、 var、 fn、loop、 recur、 new等等。 這就是 Clojure ? Clojure代碼 ? special form: (let [n 10] (if ( n 0) (cons 4 39。(5 6)) 39。(1 2 3))) 。= (4 5 6) (loop [n 5 result 1] (cond (= n 0) result :else (recur ( n 1) (* n result)))) 。= 120 Clojure與函數(shù)式編程 Clojure is a functional programming language. Clojure與函數(shù)式編程 ? 函數(shù)式編程( Functional programming) ? 一種編程范式 ? 程序運(yùn)算即為數(shù)學(xué)上的函數(shù)計算 ? 以 λ 演算( lambda calculus)為基礎(chǔ) ? 函數(shù)為 firstclass,可以很方便的運(yùn)用閉包創(chuàng)造出高階函數(shù) ? 避免狀態(tài)、變量和副作用,保證引用透明性 ? 懶惰計算( lazy evaluation)和閉包( closure) Clojure與函數(shù)式編程 ? 函數(shù)式編程 不可變的數(shù)據(jù) (def a 39。(1 2 3)) (def b (cons 0 a)) (do (println a is a) (println b is b)) 。= a is (1 2 3) 。= b is (0 1 2 3) 。= nil Clojure與函數(shù)式編程 ? 函數(shù)式編程 不可變的數(shù)據(jù)
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1