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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

clojure学习记录

發布時間:2024/4/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 clojure学习记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

take 從列表中獲取子列表

into a b ?把b conj 到a中

?

(defn count-a-seq [lat]
? (reduce (fn [x y] (+ x 1)) 0 lat))

reduce 將list通過fn一個個合并成一個,當然也可以只是對每個進行+1

?

(defn [x & xs]

reduce #(if (> %1 %2) %1 %2) x xs?

)

?

#(mapcat vector %1 %2)

對%1 %2每個對應元素進行vector,然后concat在一起

?

drop-last 干掉最后一個

flatten 將所有集合合并在一起

take-last 取最后幾個

?

comp 返回一個將所有參數函數從右到左依次應用的函數

( (apply comp (repeat ntime (if (> n 0) lshift rshift))) coll))

?

{} #{} hash-map and hash-set

(contains? [1 1 1 1 1] 4) => true 因為contains只看index

?some 取第一個滿足條件的

?

?(take 10 (map last (iterate (fn [[x y]] [y (+ x y)]) [0 1]))) 迭代器的每個元素是一個二元組,最終取出其中一個組成fib

?

?flattern

(defn flat [coll]
(mapcat
#(if (sequential? %) (flat %) [%]) coll))

?

https://github.com/qiuxiafei/4clojure/blob/master/answers/28.Flatten%20a%20Sequence

(filter (complement sequential?) (tree-seq sequential? identity '((1 2) 3 [4 [5 6]])))

別人的版本,通過映射成樹,然后收集葉子節點來進行flattern,想法不錯哦

?

group-by identity coll 通過identity變成hash-map一個key一個vector的形式、

map hash-map的時候使用 (fn [[k v]] [k (count v)])

into {} ?([:b 3] [:a 2]) =>?{:b 3, :a 2}

(conj nil num) 這樣可以建立一個'(num)

--------------

?

突然想到從cfunc - object -lisp的一個變遷的過程,可能是越來越抽象

比如map這個函數,把平時的普通循環做的事情抽象到每個做映射,這個是普通java里沒有的抽象,而這種抽象在lisp里處處可見

?

前綴的=,可以任意參數的

轉載于:https://www.cnblogs.com/TLightSky/p/4127418.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的clojure学习记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。