clojure入门(一)-- 综述和预备知识
来源:互联网 发布:苹果笔记本mac系统升级 编辑:程序博客网 时间:2024/05/16 00:26
英文原文地址:http://clojure-doc.org/articles/tutorials/introduction.html
转载请注明译者(Dead_Micky)和出处
本菜鸟英语水平差,欢迎各位大神的批评指导。
该部分包括:
- Clojure语言基础
- 表达式,标识符(locals,vars)
- let forms
- 函数
- 基本数据类型
- 不可变数据结构入门
- Clojure应用类型总览(vars,atoms,agents,refs)
- 循环和递归
- Clojure宏入门
该项目遵循Creative Commons Attribution 3.0 UnportedLicense (包括图片和样式表)。
综述
<span style="font-size:18px;">注释:在随后代码示例中,如果没有多REPL特殊说明,我们将会把前缀(如”User=>”或者”my-proj.core=>”)省略。此外,在clojure中,注释以一个分号开始,在此文档当中我们使用“; =>”(尾端注释)和“;; =>”(单行注释)用于说明前一个表达式的运算结果。</span>
预备知识
Clojure是一门多用途的编程语言,并且也是一门实用性很强的语言。Clojure的语言就像Lisp的简单:代码由运算表达式构成。以下是一些例子。
5 ; ⇒ 5"hi" ; ⇒ "hi"[1 2 3] ; evaluates to the vector `[1 2 3]`(+ 1 2) ; evaluates to the sum of 1 and 2(if true "yes" "no") ; evaluates to the string "yes"(println "hello!") ; evaluates to nil (but also prints "hello!")
一个表达式可以包含多个子表达式:
(+ 1 (* 2 3) (/ 10 2)) ; ⇒ 1 + (2 * 3) + (10 / 2) = 12
方括号( brackets)及其中的内容也就是所谓的“forms”。 一个表达式被圆括号括起来可以说是一种函数调用,但宏或者是特殊form(要了解更多请移步Evaluation部分)。 Clojure不对空格敏感。而且空格也可以被逗号替代,所以你可以根据使用喜欢来选择使用哪个(例如你可以将向量写作[1 2 3]或者(1,2,3))。
Clojure 代码是块结构的和基于词法作用域(clojure支持动态域)的。Clojure是一种编译语言。Clojure的reader读取源代码,然后转换为JVM的二进制代码并在java虚拟机中执行。Reader还支持一些(语法糖)。
通过此教程,我们将依靠牛x的clojure cheatsheet 来自由查找需要的内容。并且能够从这里前往相关主题的文档页。在REPL中,你可以通过以下方式查看一个给定的函数的相关文档或者它的源代码。
在REPL中,你可以随时使用如下函数查看相关函数的文档:
(doc some-function)
(source some-function)接下来就在你的REPL中快看看效果吧。
- clojure入门(一)-- 综述和预备知识
- 数据结构预备知识(一)
- 概率论(一)-预备知识
- Spring入门预备知识(上)
- Linq to Sql (一):预备知识
- Linq to sql(一):预备知识
- ASP.NET预备知识(一)
- LCD驱动程序一(预备知识)
- Linux Kernel读书笔记(一)---预备知识
- LDA-线性判别分析(一)预备知识
- word2vec实践(一):预备知识
- Linux学习笔记(一)预备知识
- shell脚本知识(一) 基本知识预备
- word2vec实践(一):预备知识
- 期望(一)—— 预备知识
- 汇编预备知识(一)
- MES入门.预备知识.生产
- MES入门.预备知识.质量
- ant 软件包 javax.servlet.http 不存在 解决办法
- IT的面试官在想什么?
- win2003 mysql 5.6 忘记root密码
- C++ 继承的重复问题
- 《深入理解Android:Wi-Fi,NFC和GPS》章节连载[节选]--前言 .
- clojure入门(一)-- 综述和预备知识
- Jdom 解析 XML
- 算法之旅,直奔贪心
- 大端模式,小端模式详解
- 谈一下我对于指针的理解 .
- 问题集锦
- 二重指针
- 惠普Fn键设置
- ubuntu中关于通过编辑.bashrc文件修改提示符的简单过程