Clojure
xpingnan
这个作者很懒,什么都没留下…
展开
-
leiningen构建工具的project.clj配置
英文不大好,给自己做个参考。错误肯定存在。英文地址:[url]https://github.com/technomancy/leiningen/blob/master/sample.project.clj[/url][code="clojure"];;==================================================================...原创 2011-12-14 17:20:03 · 385 阅读 · 0 评论 -
clojure解构(clojure destructuring)
[b]解构是什么?[/b]可以认为map、list、struct等是构造出来数据结构。怎么取这些结构里面的数据?那就需要把结构拆开,取到数据。这就是解构(destructuring)。[b]为什么要解构?[/b]由于在clojure中如果只靠一些集合到操作函数如first、last、nth等函数,不能够简洁的获取一些嵌套集合中的元素,所以需要destructuring来使我们可以简...原创 2013-06-15 02:17:04 · 144 阅读 · 0 评论 -
一张clojure思维导图
[img]http://dl2.iteye.com/upload/attachment/0092/4987/a9719fcb-fc50-3804-a3ee-052028a6ed9b.png[/img]原创 2013-12-25 10:19:44 · 202 阅读 · 0 评论 -
关于clojure的ns中的require,use,import等
初学clojure的时候曾经对ns引入库的几个函数疑惑了一阵,所以将理解记在这里。[b]关于require[/b]require只负责引入clojure库,不绑定函数到当前的ns中。[code="clojure"];;引入java io,并指定缩略名为io(require '[clojure.java.io :as io]);;使用(io/file "Filen...原创 2014-05-15 11:20:57 · 148 阅读 · 0 评论 -
关于clojure的gen-class
[b][size=large]关于gen-class的参数说明:[/size][/b]:name aname要生成的类的全限定名:extends aclass指定superclass,没有指定默认为Object:implements [interface ...]要实现的接口:init name指定构造函数名称,必须返回[ [superclass-c...原创 2014-05-15 12:04:52 · 401 阅读 · 0 评论 -
lein插件大全
lein插件的wiki地址:https://github.com/technomancy/leiningen/wiki/Plugins Development Toolsconfigleaf Build profiles and access to project.clj at runtime. (see also 'slothcfg', an updated fork)...原创 2014-01-08 22:54:07 · 410 阅读 · 0 评论 -
用clojure实现一致性哈希算法(consistent hashing)
一、[b]依赖的jar包[/b][code="lein"][com.google.guava/guava 14.0.1][/code][b]二、具体实现[/b][code="clojure"](defn vnodes "生成n个随机的vnode" [n] (vec (sort (repeatedly n #(rand-int 65536)))))...原创 2014-05-16 18:42:32 · 350 阅读 · 0 评论 -
一步完成emacs的clojure开发环境配置——emacs-live
断断续续学习Emacs好久。对于配置还是很头疼,特别是碰到插件安装异常的时候,常常束手无策。。。想必很多想用Emacs来作为clojure开发环境的人也有这种痛苦吧。最简单的还是找别人现成的配置,copy来用,省事没烦恼。(前提:先装好gnu emacs24,如果已经安装配置的,请移除自己的.emacs和.emacs.d文件。)[b]两种安装方式:[/b]一、使用git安装...原创 2013-08-26 15:49:40 · 220 阅读 · 0 评论 -
clojure逻辑编程框架——core.logic入门
core.logic是miniKanren的一个实现。miniKanren中一个重要的概念就是goal,根据goal来推测可能的结果,这就是它的核心概念。一、Core.logic的基本语法:[code="clojure"] (run* [logic-variable] logic-expressions);;或者(run 1 [logic-variable]...原创 2014-03-10 00:31:40 · 246 阅读 · 0 评论 -
Clojure学习——Web框架Noir
Noir是一个clojure的轻量级的web快速开发框架。而且使用和入门都比较简单,而且[url=http://www.webnoir.org/]官网[/url]例子也简洁明了。一、对于lein1.x版本,生成Noir工程并启动:[code="sh"]lein plugin install lein-noir 1.2.1 lein noir new my-website ...原创 2012-12-16 12:25:23 · 235 阅读 · 0 评论 -
Clojure学习——给持久化框架配上c3p0连接池
之前的两个持久化框架都没有使用连接池。总感觉不放心。试着配置了个c3p0的连接池在clojureql框架中使用。同样的,放在clj-record框架中也没问题。[b]添加依赖[/b][code="clojure"][clojureql "1.0.4"][mysql/mysql-connector-java "5.1.11"][c3p0/c3p0 "0.9.1.2"][/...原创 2012-12-06 17:07:32 · 144 阅读 · 0 评论 -
Clojure学习——持久化框架clj-record
clj-record是仿Ruby on Rails ActiveRecord的一个持久化框架。项目源码在github上,使用说明写的很坑爹,就不能写个能跑起来的代码么。只是断断续续学了不久clojure,被逼去看源码,试了好几次,总算写出了能跑起来的代码。[b]添加依赖[/b][code="clojure"][mysql/mysql-connector-java "5.1.21"]...2012-12-06 10:47:14 · 170 阅读 · 0 评论 -
clojure的四种并发模型(转)
转载地址:[url]http://www.ibm.com/developerworks/cn/web/wa-clojure/index.html?ca=drs-[/url]1、本地线程var。注意,这里的操作需要用到绑定宏。这改变了 var 的线程本地值。因此,在 place-offer 函数的执行范围内 droid 和 history 所指向的值将不同。然而,在执行之外,...原创 2011-12-16 15:43:00 · 329 阅读 · 0 评论 -
Emacs+Clojure开发环境配置
Emacs下的配置clojure开发环境主要有以下几个步骤: 1、安装JDK,版本1.5以上即可。我用的是1.6的。 安装完成后配置JAVA_HOME和CLASSPATH环境变量,同时将%JAVA_HOME%/bin添加到环境变量中。 查看安装配置是否完成,在命令行运行:java -version 2、安装maven3或者maven2:直接去[url=h...2012-02-27 01:33:39 · 283 阅读 · 0 评论 -
关于clojure中的一些函数和宏(一)
->、->>的区别。例子:[code="clojure"] (-> (+ 1 2) (/ 2)) ;;返回结果3/2. (->> (+ 1 2) (/ 2)) ;;返回结果2/3.[/code]-> 后面的函数迭代使用之前的函数结果作为第一个参数,返回最后一次函数调用的值 [code="clojure"](-> (+ 1 2) (/ 2)) ;;的可解...原创 2012-02-28 23:27:58 · 250 阅读 · 0 评论 -
clojure defn的参数解构
[code="clojure"]In Clojure 1.2, you can destructure the rest argument just like you would destructure a map. This means you can do named non-positional keyword arguments. Here is an example:user...原创 2013-04-16 23:50:59 · 281 阅读 · 0 评论 -
Clojure学习——IntelliJ IDEA配置clojure开发环境
由于Emacs的学习曲线[img]http://dl.iteye.com/upload/attachment/0077/3955/48a9c732-3cb2-3b51-a422-2ee469143f4d.png[/img]、查看源码、调试等问题。所以我暂时选择了IntelliJ IDEA作为clojure的开发环境。在IntelliJ IDEA上配置clojure的开发环境只需要安装两个插...2012-12-03 17:29:47 · 1822 阅读 · 0 评论 -
Clojure学习——clojure构建工具Leiningen2.x的安装
Linux环境下的安装:1、[url=https://raw.github.com/technomancy/leiningen/preview/bin/lein]下载脚本。[/url]2、粘贴到你的~/bin或者/usr/bin下面。3、赋予脚本可执行权限。 (例如:chmod 755 ~/bin/lein或者 chmod +x /usr/bin/lein)4、执行lein...2012-12-05 10:10:08 · 238 阅读 · 0 评论 -
Clojure学习——使用clojure jdbc操作mysql
一、在mysql库中建需要的test库和users表。[code="mysql"]CREATE DATABASE test;CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, `email` varchar(100) DEFAULT ...2012-12-05 11:12:23 · 463 阅读 · 0 评论 -
Clojure学习——持久化框架ClojureQL
之前写过用[url=http://clojure.iteye.com/admin/blogs/1741375]clojure jdbc来连接数据库进行操作[/url]。对于很多Java开发人员来说,用惯了Hibernate、MyBatis之类的持久化框架,似乎不用框架写都不会代码了。ClojureQL,从名字上就可以大概猜出这是一个对SQL进行Clojure DSL封装的一个持久化框架。...原创 2012-12-06 09:35:43 · 178 阅读 · 0 评论 -
地图着色——core.logic求解
记得很久很久之前写过一篇[url=http://clojure.iteye.com/blog/1727541]《七周七语言——地图着色》[/url]。用core.logic求解下。[img]http://dl.iteye.com/upload/attachment/0076/6860/361e23b1-b393-3719-b177-c0af8dace490.png[/img]依赖包:...原创 2015-06-16 13:24:11 · 228 阅读 · 0 评论