Clojure 学习
Android系统攻城狮
《Android系统多媒体进阶实战》一书作者 - 专注Android/Linux系统多媒体技术,与广大开发者一起日益精进。
展开
-
Clojure 学习入门(1) - 学习资料
转自:http://blog.csdn.net/ithomer/article/details/17225813Clojure(发音类似"closure",['kləʊʒə(r)])是一套现代的Lisp语言的动态语言版,它是一个函数式多用途的语言,其语法和其他的Lisp一样,都是建立在 S-expression 之上,即”全是括号,前缀表达式”的语言。Clojure可以执行于J转载 2016-10-06 23:30:34 · 429 阅读 · 0 评论 -
Clojure 学习入门(17)- 异常处理
异常处理 Clojure代码里面抛出来的异常都是运行时异常。当然从Clojure代码里面调用的Java代码还是可能抛出那种需要检查的异常的。try - catch - finally 以及throw 提供了和java里面类似的功能。try、catch、throw、finally: user=> (try (throw (Exception. "err转载 2016-10-07 15:48:35 · 504 阅读 · 0 评论 -
Clojure 学习入门(16)- 正则表达式
一、创建正则表达式 re-pattern函数: 函数 (re-pattern) 接受一个字符串参数,返回一个正则表达式样式(java.util.regex.Pattern类的实例)。这个样式能用于正则表达式匹配 user=> (re-pattern "\\d+") #"\d+" 也可以使用读取宏来直接用文本的方式输入正则表达式:在字符串前使用#符转载 2016-10-07 15:47:24 · 381 阅读 · 0 评论 -
Clojure 学习入门(15)- 条件判断
一、标准的流程控制 if: 将一个判断表达式作为它的第一个参数进行求值。如果求值为true,那么就返回它的第二个参数(相当于“then”子句)的求值结果。如果结果为false(包括nil)就返回第三个参数的求值结果(相当于“else”子句),前提是有提供第三个参数并且不为空。 user=> (defn is-small [number] (if (100) "yes转载 2016-10-07 15:46:00 · 454 阅读 · 0 评论 -
Clojure 学习入门(14)- 循环控制
Clojure 基于函数的流程控制 repeatedly 字面意思为重复函数。一般的用法如下: user=> (repeatedly 5 #(rand-int 11)) (6 8 2 6 6) 重复产生5次随机数。rand-int 11表示0至11的随机数。这里顺便提一下repeat函数:repeat函数接受一/两个常量参数,用法如下:转载 2016-10-07 15:45:06 · 433 阅读 · 0 评论 -
Clojure 学习入门(13)- binding
Clojure里面是不支持变量的。Binding跟变量有点像,但是在被赋值之前是不允许改的,包括:全局binding, 线程本地(thread local)binding, 以及函数内的本地binding, 以及一个表达式内部的binding。def 这个special form 定义一个全局的 binding,并且你还可以给它一个”root value” ,这个root valu转载 2016-10-07 15:43:53 · 397 阅读 · 0 评论 -
Clojure 学习入门(12)- map/pmap
clojure map数据结构的常用方法,小结一下map 各种排序[html] view plain copy print?(println (sorted-map-by > 1 "a", 2 "b", 3 "c")) ;; {3 c, 2 b, 1 a} ;; 相等 value 取一个 (let [r转载 2016-10-07 15:35:08 · 592 阅读 · 0 评论 -
Clojure 学习入门(11)- 宏 macro
clojure macro宏在运行之前机械展开,定义宏相当于给语言增加新特性,写宏的*原则*: 能写成函数就不要用宏(因为写宏没有写函数简单直观,容易写错,需要先在 REPL 中测试一番) 只有不得不用时才用宏(性能要求高时比函数调用快,或者需要“代码数据”相互转换) 精心设计的宏调用比函数调用更 DSL(如实现控制结构、传递 Java方法) 宏与函转载 2016-10-07 15:33:53 · 559 阅读 · 0 评论 -
Clojure 学习入门(10)- httpkit
Http-kit 是主要由Java 和 Clojure开发,为Clojure定制的零依赖的HTTP lib,仅用3000多行代码,实现了高性能 Server,Client,Timer。代码量少,实现简单,对Hacker友好。在普通的PC上进行性能测试时,http-kit server每秒能处理数万个请求,并能轻松保持数十万并发,每个连接消耗几k内存,并发数仅与内存大小有关,高并发不转载 2016-10-07 15:32:48 · 774 阅读 · 0 评论 -
Clojure 学习入门(9)- 连接redis
clojure 连接 Redis 示例project.cli 添加redis依赖: [clj-redis "0.0.12"][delphi] view plain copy print?(defproject myClojure "0.1.0-SNAPSHOT" :description "FIXME: write desc转载 2016-10-07 15:31:41 · 554 阅读 · 0 评论 -
Clojure 学习入门(8)- 连接mongodb
clojure 连接 mongodb示例project.clj 文件添加monger依赖: [com.novemberain/monger "1.5.0"][css] view plain copy print?(defproject myClojure "0.1.0-SNAPSHOT" :description "FI转载 2016-10-07 15:30:14 · 599 阅读 · 0 评论 -
Clojure 学习入门(7)- 连接mysql
Clojure的contrib包中实现了对现有JDBC的封装,在wiki上有连接,该页面上包含了对不同的数据库的连接方法和基本的操作,但是这个页面上没有提供足够的信息,足够一个初学者能够使用Clojure来完成一个SQL操作。本文中我们将利用Clojure和Lein工具,简介一下做开发的基础。当然网上也有非常多对Clojure的SQL操作进行封装的库,我们这里没有使用。首先,配置你的M转载 2016-10-07 15:28:51 · 1048 阅读 · 0 评论 -
Clojure 学习入门(6)- 函数定义
一、创建函数: fn: fn是一个宏,用于定义一个简单的函数,如下: [python] view plain copy print?user=> (fn [] "hello") # user=> ((fn [] "hello")) "hello" user=> ((fn [x] x) "hell转载 2016-10-07 15:26:25 · 529 阅读 · 0 评论 -
Clojure 学习入门(5)- 关键字
一、创建: Keyword: 关键字是一个内部字符串; 两个同样的关键字指向同一个对象; 通常被用来作为map的key。 [python] view plain copy print?user=> (keyword "foo") :foo user=> (keyword 'foo) :foo user=>转载 2016-10-07 15:25:01 · 440 阅读 · 0 评论 -
Clojure 学习入门(4)- 字符串
一、创建 函数str: 函数 (str) 接受任意数量的参数。如果参数不是字符串则将其转换为字符串,返回创建的新字符串。如果没有参数或为nil,则返回空字符串""[python] view plain copy print?user=> user=> (str 1) "1" user=> (str -2.5) "-2转载 2016-10-07 15:22:27 · 474 阅读 · 0 评论 -
Clojure 学习入门(3)- 数字类型
一、算术运算 加法+:加法函数(+)接受任意数值类型的参数,返回它们的和;没有参数时返回0。 [python] view plain copy print?$clojure Clojure 1.2.1 user=> (+) 0 user=> (+ 1) 1 user=> (+ 1 2 3 4)转载 2016-10-07 15:20:22 · 497 阅读 · 0 评论 -
几分钟内学习 Clojure
转自:http://blog.csdn.net/column/details/learn-clojure.htmlClojure 是JVM上的一个LISP语言变种,它比Common Lisp更强调纯函数式编程,但提供了一些STM工具以处理它所引入的状态问题。Clojure源码托管在:github在线练习编译环境: himeralearnclojure转载 2016-10-06 23:52:42 · 564 阅读 · 0 评论 -
定制clojure的REPL
原址作为当今最主流的运算平台JVM,把函数式编程语言引入JVM也是很多人尝试的方向,Clojure就是其中之一。Clojure是一个在JVM平台运行的动态函数式编程语言,其语法于类似LISP语言,在JVM平台运行的时候,会被编译为JVM的字节码进行运算。 诞生于2007年的Clojure是JVM平台上的Lisp实现,Lisp 以强大的功能和表达性而著称,但应用范围存在着固定的局限,于是转载 2017-07-06 23:14:05 · 492 阅读 · 0 评论