
编程语言-Clojure
文章平均质量分 69
jxluoix
能够自己独立开发中小型的软件系统;
对工作态度认真、执着、诚恳;勇于专研、探索、创新;
接受新事物快、见识宽广.
展开
-
lambda
lambda lambda在计算机编程语言中,如Lisp,Python和Ruby, λ是一个算子,用于表示匿名函数或者闭包,后跟λ演算的用法。在C#编程语言中,一个λ表达式是一个包含表达式和语句的匿名函数。非λ语言是一种基于组合逻辑的函数式编程语言,一个简单化的λ演算并不包含λ所有的内容, lambda term 一个有效的lambda表达...2016-09-06 22:31:59 · 235 阅读 · 0 评论 -
Clojure defmacro
•defmacro(defmacro name doc-string? attr-map? [params*] body) (defmacro name doc-string? attr-map? ([params*] body) + attr-map?) 和defn类似,但defmacro定义的函数名被声明为宏,当这个定义的函数名被调用的时候,编译器认...原创 2016-09-23 00:27:23 · 254 阅读 · 0 评论 -
Clojure cond
•cond(cond & clauses) 后跟一组测试求值表达式/表达式对(test/expr pairs),逐次一次一个的求值。如果某个测试求值表达式返回逻辑真,返回对应表达式的值,并且不再对下面剩下的测试求值表达式或对应表达式求值。如果没有指定任何测试求值表达式/表达式对(test/expr pairs),也就是这种形式:(cond) ,将返回nil。 ...原创 2016-09-23 00:24:06 · 149 阅读 · 0 评论 -
Clojure ->
•->(-> x & forms)将forms从头到尾穿成串,具体是将x作为第二个item插入到第一个form中,形成一个表达式,如果有更多form,则将第一个form形成的表达式作为第二个item插入到第二个form中,形成一个表达式,之后再讲第二个form形成的表达式作为第二个item插入到第三个form中,形成一个表达式,以此类推。。。 上面解...原创 2016-09-23 00:23:38 · 364 阅读 · 0 评论 -
Clojure atom
•atom(atom x) (atom x & options) 创建并返回一个atom原子变量,初始化为x值,同时还可以指定0个或多个可选选项,多个可选选项顺序不分先后。 可选选项: :meta metadata-map 元数据,map结构:validator validate-fn 验证器,函数 如果指定了:meta,将指...原创 2016-09-23 00:23:10 · 218 阅读 · 0 评论 -
Clojure reify
•reify(reify & opts+specs)reify是一个宏,结构如下: (reify options* specs*) 目前没有说明options,不需要指定。每个specs由协议或接口名及后跟的0个或多个方法体组成: protocol-or-interface-or-Object (methodName [args+...2016-09-22 15:55:48 · 395 阅读 · 0 评论 -
Clojure for
•for(for seq-exprs body-expr) 列表内涵逻辑,接收一组(一个或多个)绑定form(binding-form)/集合表达式(collection-expr)对,每个绑定form(binding-form)/集合表达式(collection-expr)对后面跟着0个或多个modifier,最后获得一个求值表达式表示的惰性序列。 ...2016-09-22 15:52:05 · 186 阅读 · 0 评论 -
Clojure fn
•fn (fn name? [params*] exprs*) (fn name? ([params*] exprs*) +) 定义一个函数 如果是匿名函数,可以不指定name 返回的是一个form,这个form就是定义该函数的form,但还不能调用。如:=> (fn ScalaEvalFunction3 ...2016-09-22 15:47:32 · 180 阅读 · 0 评论 -
Clojure defmethod & defmulti
•defmethod(defmethod multifn dispatch-val & fn-tail)创建并安装一个关联dispatch值的multimethod。 multifn 指定需要创建并安装的multimethod名称,该名称与defmulti的名称一致。dispatch-val 指定一个关联的dispatch value& ...2016-09-22 15:44:10 · 493 阅读 · 0 评论 -
lambda和函数式概念区别
> (define x (let ((a "this is a")) a)) > x$22 = "this is a"2016-11-11 16:42:10 · 389 阅读 · 0 评论