加载中
通配符与正则表达式

网友看法: (总结精辟!) 通配符是系统level的 而正则表达式需要相关工具的支持: egrep, awk, vi, perl。 在文本过滤工具里,都是用正则表达式,比如像awk,sed等,是针对文件的内容的。 通配...

Scala中隐式转换(implicit conversion)的优先顺序

在学习Scala的时候,隐式转换(implicit conversion)这个特性让我实在是闹不住啊。于是乎一边试用一边感慨:真的是太强大,太方便了。 不过,越是强大且方便的东西,越容易用出毛病来。在我...

Clojure惰性序列的头保持问题

《Clojure编程》一书中有一个例子: (let[[t d](split-with #(< % 12) (range 1e8))] [(countd) (countt)]) ;= OutOfMemoryError Java heap space clojure.lang.ChunkBuffer.<init> (Ch...

clojure 新手指南(16):基本迭代&递归

迭代和递归是两种不同的概念,但是它们彼此之间又有点相似。迭代是遍历一组元素,并在遍历的过程中对每一个元素做相应的操作,递归则是执行一个自己调用自己的操作。 从递归和迭代的概念上来...

深入理解ThreadLocal

学习一个东西首先要知道为什么要引入它,就是我们能用它来干什么。所以我们先来看看ThreadLocal对我们到底有什么用,然后再来看看它的实现原理。 ThreadLocal如果单纯从名字上来看像是“本地...

clojure 新手指南(15):可变性

我们已经知道如何把数据绑定到一个变量上,这给我们提供了一种可共享的数据的持久化存储方式(数据被绑定到一个变量后,我们是无法对数据本身进行修改的,重新绑定又是另一回事了,和修改数据...

clojure 新手指南(14):Hash-Maps ,Array-Maps & Sorted...

hash-map 创建 在clojure中,哈希表是最通用的一种Map,和java中的HashMap一样,它们在处理大量数据方面效率非常高,但是不保证顺序。我们可以使用函数hash-map来创建哈希表: =>(hash-map :...

clojure 新手指南(13):序列&向量

序列 我们知道clojure是Lisp的一种方言,那么这也意味着对这门语言必然植根于“列表解析”。但是在Clojure中,我们优先使用"序列"来创造列表和管理列表中的元素。 列表 之前我们说过,Lisp系...

clojure 新手指南(12):本地绑定&词法作用域

如果你还没忘的话,仔细回想一下,之前我们是如何将对象绑定到变量名上的。但当时我们只是全局绑定,在那时这种绑定是非常有用的。不过,有很多时候,本地绑定往往比全局绑定更合适,例如把变...

clojure 新手指南(11):正则表达式

接着上篇,继续我们的时间和日期函数的探讨。我们可以定义一个函数,将一个日期字符串分成一个列表。列表元素分别为年、月、日、时、分、秒。为了完成这个字符串分割操作,我们使用“re-spli...

clojure 新手指南(10):与java交互

clojure是基于jvm的语言,就是说clojure会被编译成字节码被jvm执行。但是clojure能做的可不仅仅是被编译成字节码,它提供了一套API让用户与java交互。因此clojure可以直接调用java世界中那些...

clojure 新手指南(9):元数据

我们在定义函数的时候提到了如何去定义一个元数据。但之前只是定义它,并没有明说它的用途。让我们再看一下之前定义的select-random函数,我们添加了一个叫做:add的元数据。注意:元数据是以...

自学编程,十年磨一剑

黄小非译注:本文作者Peter Norvig目前任职于Google,其职位是研究主管(Director of Research). Peter Norvig是享誉世界的计算机科学家和人工智能专家。他是 AAAI 和 ACM 的会员,是业界内经...

clojure 新手指南(8):参数和重载

现在我们首先定义一个支持4个参数相加的函数: (defn add [ v1 v2 v3 v4]    (+ v1 v2        (if v3           v3           0)       (if ...

自旋锁学习系列(4):基于数组的队列锁

BackoffLock的缺点 上篇我们用指数后退技术实现了BackoffLock,但是还是不太理想。除了移植性不太好外问题还体现在两个方面: 1、 cache 一致性流量: 不要被这个名词吓到了。其实很好理解,...

clojure 新手指南(7):定义函数

前几章中,我们用了一种比较迂回的方式创建函数:把匿名函数绑定到一个变量上。实际上,clojure提供了一个更好的方式做同一件事情。“defn” 这个函数就是专门用于定义函数的。 在我们使用d...

akka基础:理解Actor路径

actor路径组成 在理解Actor系统这篇文章中我们知道,actor是以一种严格的层级结构方式被创建的。这有点类似一个文件系统,文件夹内又包含子文件夹,子文件夹又包含子子文件夹,以此类推。我们...

clojure 新手指南(6):全局绑定&匿名函数

绑定变量 在Clojure中,我们可以使用 " def " 给函数和数据赋予一个名字。例如我们定义一个叫做“alphabet”的字符串变量 user=> (def alphabet "abcdefghijklmnopqrstuvwxyz") #'user/al...

没有更多内容

加载失败,请刷新页面

返回顶部
顶部