clojure 宏 -> 和 ->>

clojure中的-> 和 ->> 操作极大的缓解了括号嵌套的问题(-> [2 5 4 1 3 6] (reverse) (rest) (sort) (count))=> 5(count (sort (rest (reverse [2 5 4 1 3 6]))))=> 5根据官方的解释->是一个宏,解释起来有点绕口,->的参数是一系列的s表达式-> 会
作者:admin发表于:2017-12-27 17:20:18

4clojure 题解Fibonacci Sequence

返回指定长度的斐波那契数列Write a function which returns the first X fibonacci numbers.(= (__ 3) '(1 1 2))(= (__ 6) '(1 1 2 3 5 8))(= (__ 8) '(1 1 2 3 5 8 13 21))还是递归(fn d ([x] (d x '(1 1))) ([x y] (let [rev (reverse y) a (first rev) b
作者:admin发表于:2017-12-27 16:46:43

4clojure 题解 Reverse a Sequence

不使用reverse操作翻转一个序列Write a function which reverses a sequence.(= (__ [1 2 3 4 5]) [5 4 3 2 1])(= (__ (sorted-set 5 7 2 7)) '(7 5 2))(= (__ [[1 2][3 4][5 6]]) [[5 6][3 4][1 2]])22 22一个巧妙的答案:#(reduce conj () %)
作者:admin发表于:2017-12-27 16:27:42

4clojure 题解 Palindrome Detector

经典的回文判断问题Write a function which returns true if the given sequence is a palindrome.Hint: "racecar" does not equal '(\r \a \c \e \c \a \r)(false? (__ '(1 2 3 4 5)))(true? (__ "racecar"))(true? (__ [:foo :bar :foo]))(tru
作者:admin发表于:2017-12-27 16:01:43

4clojure 题解 Count a Sequence

统计集合元素的数量不允许使用count操作Write a function which returns the total number of elements in a sequence.(= (__ '(1 2 3 3 1)) 5)(= (__ "Hello World") 11)(= (__ [[1 2] [3 4] [5 6]]) 3)(= (__ '(13)) 1)(= (__ '(:a :b :c)) 3)用递归
作者:admin发表于:2017-12-27 15:01:00

4clojure 题解 Nth Element

模拟nth函数Write a function which returns the Nth element from a sequence.(= (__ '(4 5 6 7) 2) 6)(= (__ [:a :b :c] 0) :a)(= (__ [1 2 3 4] 1) 2)(= (__ '([1 2] [3 4] [5 6]) 2) [5 6])用递归试了下可以通过(fn d [seq x] (if (> x 0) (d (rest seq) (dec
作者:admin发表于:2017-12-27 14:53:21

clojure 函数

用fn关键字创建函数((fn add-five [x] (+ x 5)) 3)=> 8用fn关键字创建匿名函数((fn [x] (+ x 5)) 3)=> 8用特殊表创建匿名函数(#(+ % 5) 3)使用partial操作局部套用函数创建一个新的函数((partial + 5) 3)=> 8
作者:admin发表于:2017-12-27 14:32:00

clojure调用java 可变参数函数

最近使用clojure写一个小项目中间需要用到java的一些库,在clojure调用java的varargs function 的时候报错,看了下clojure的官方文档说是可以直接调用,但是可能是因为版本问题,现在已经不支持按直接传参的方式调用java varargs function,我呀调用的目标函数原先如下:
作者:admin发表于:2017-12-14 11:30:53

clojure pmap并发

clojure的map函数可以对集合进行变换处理(range 10)=> (0 1 2 3 4 5 6 7 8 9)(map (partial + 1) (range 10))=> (1 2 3 4 5 6 7 8 9 10)其实clojure有个代替的函数pmap,使用了pmap之后对集合的操作将自动切换到线程池上并发执行,不过线程的切换也需要开销,如果任务粒
作者:admin发表于:2017-12-13 00:19:44

clojure解数学问题

最近群里有个问题把987654321这9个数从大到小顺序排列,添上十丶一号,使结果等于90刚好在学习clojure就试着用clojure写代码来搜索答案了clojure的表现力还是很强的,总共写了20来行代码(ns my-stuff.core (:gen-class))(defn convert-tree [tree] (if (number? tree) tree (le
作者:admin发表于:2017-10-31 14:01:53
33«1234»

Copyright © 2012-2014 我的代码板 Inc. 保留所有权利。

页面耗时0.0239秒, 内存占用1.9 MB, 访问数据库11次

闽ICP备15009223号-1