Clojure函数式编程
文章平均质量分 92
zdplife
千里之行始于足下,一步一个脚印,终会成功
展开
-
Clojure代码风格
刚开始学习Clojure,看到了一篇关于Clojure编程风格指南的一篇文章,就转载过来,写的真好:原文章网址:http://lisp.tw/2013/02/19/clojure-style-guide/一、组织源代码与排版每个缩排层级使用两个空格。不要使用 Hard Tabs。;; good(when something (something转载 2016-05-29 21:47:52 · 1352 阅读 · 0 评论 -
clojure代码迁移到clojurescript过程中踩过的坑
clojure是运行在java虚拟机上的函数式语言,而clojurescript是可以编译成javascript的函数式语言,两者之间的语法基本上是一致的。所以如果你写了一份clojure代码,既可以编译成java的jar包,被java项目代码调用,也可以将其转换为clojurescript代码,然后编译成js文件,被JavaScript项目调用,很方便。但是我本人从来没有接触过clojuresc原创 2016-06-03 21:28:12 · 2166 阅读 · 7 评论 -
正则表达式在Clojure中的应用
关于正则表达式基础概念,在我的另一篇文章 http://blog.csdn.net/zdplife/article/details/51866141有相关的总结,最近在学习函数式编程语言Clojure,因此将Clojure中经常使用到正则表达式的函数总结如下: 1. re-find函数: re-find函数用于查找字符串中满足给定正则表达式的第一个匹配的内容并返回:(re-find #"原创 2016-07-09 20:48:53 · 1469 阅读 · 0 评论 -
Clojure中的关联数据结构(Vector/Map/Set)
在刚刚接触clojure这门语言时,总是容易搞不清楚某个函数都适用于哪些的数据结构,为什么有的函数可以用于vector,却不能用于list呢。其实主要是因为各种类型实现的接口不同,本文总结一下Clojure中的实现关联数据接口的数据结构(Vector/Map/Set),以及这些数据结构拥有哪些可以公共的函数可以操作。1.clojure中的关联数据结构 clojure中有三种常用的关联的数据结构原创 2016-08-03 16:28:42 · 2182 阅读 · 0 评论 -
逻辑编程在clojure中的应用:clojure.core.logic
1. 逻辑编程思维: 逻辑编程(逻辑程序设计)是种编程范型,它设置答案须匹配的规则来解决问题,而非设置步骤来解决问题。过程是: 事实+规则=结果 简单的说,事实就是一些已知输入,规则是应该遵循的限定条件,输入和输出应该遵循一定的规则,然后找出所有满足这些规则的输出,便是结果。在逻辑编程时,我们没必要去关心寻找结果的过程,而注重的是输出结果。 逻辑编程的要点是将正规的逻辑风格带入计算机原创 2016-07-30 18:04:09 · 1713 阅读 · 4 评论 -
clojure.spec库入门学习
clojure是一门动态类型的语言,在类型检查方面并没有c++/java这种静态类型语言好用,所以多个模块之间进行接口参数传递时,由于接口文档设计不严谨等原因,总会发生接口参数类型错误,参数个数不正确等问题,给代码调试带来很大的挑战,因此在clojure中,对接口参数的进行类型检查是非常必要的。为此,我们找了clojure.spec这个库(https://clojure.github.io/cloj原创 2016-08-25 23:11:14 · 1811 阅读 · 0 评论 -
Persistent and Transient Data Structures in Clojure
最近在项目中用到了Transient数据结构,使用该数据结构对程序执行效率会有一定的提高。刚刚接触Transient Data Stuctures,下面将自己关于对其的了解总结如下:1.clojure的不可变数据特性及存储方式: clojure中的数据结构具有不可变特性(Persistent),也就是对一个数据结构添加元素、删除元素、更改元素,返回的是一个新的数据结构,而原来的数据结构不会变:原创 2016-08-06 21:03:48 · 1000 阅读 · 0 评论 -
namespace/symbol/:keyword/::keyword in Clojure
在实际使用中,我们经常会遇到keyword和string之间的转换,尤其是如果将map中的key由string变为keyword的时候,会带来很多好处,比如我们使用的IDE中的keyword可以高亮显示,而且keyword还可以作为函数,更重要是的对map的结构会带来很多方便,所以掌握keyword和string之间的转换尤为重要。原创 2016-08-24 21:31:30 · 1027 阅读 · 0 评论 -
Clojure中Vector和List的区别及其相关函数
Clojure是一门动态类型的语言,运行时才会做类型检查。它也不会像java这种面向对象编程语言,再调用一个对象的函数时,首先这个函数必须是属于某个对象的函数,否则检查报错。所以对于clojure中的数据类型为Vector或者List的变量,总是会让初学者在选择时比较发愁,不知道什么情况下使用vector好?什么情况下使用list好?哪些函数是接收list作为参数的?而哪些函数又是接收vector作原创 2016-08-13 17:13:55 · 2564 阅读 · 2 评论