目录 背景简述 第1章 进入Clojure仙境 1.1 基础概念 1.2 常用的一些符号 背景简述 本人是一个自学一年Java的小菜鸡,理论上跟大多数新手的水平差不多,但我入职的新公司是要求转Clojure语言的.坊间传闻:通常情况下,最好是有一定Java的开发工作经验,再转CLojure可能容易一些.我入职后的实际经历也确实让我感受到了Clojure的自学难度略大于自学Java,遇到的困难主要与中文资料较少有关,具体为: 1 中文的面向新手的较为系统的教程材料较少,目前个人感觉最好用的还是<C…
变量的初始化和作用域 C#的预定义数据类型 流控制 枚举 名称空间 预处理命令 C#编程的推荐规则和约定 变量的初始化和作用域 初始化 C#有两个方法可以一确保变量在使用前进行了初始化: 变量是字段,如果没有显式初始化,创建这些变量时,其默认值为0. 方法的局部变量必须在代码中显式初始化,之后才能在语句中使用,如果在初始化之前使用了他的值,报错. 作用域 如果局部变量作用域冲突,报CS0136错. 字段与局部变量冲突,隐藏掉字段,访问被隐藏的实例字段用this关键字,静态字段使用object.f…
1.1 C#与.NET的关系 C#不能孤立地使用,必须与.NET Framework一起使用一起考虑. (1)C#的体系结构和方法论反映了.NET基础方法论. (2)多数情况下,C#的特定语言功能取决于.NET的功能,或依赖于.NET基类. .NET支持的一些特性,C#并不支持.C#语言支持的另一些特性,.NET却不支持. 1.2 公共语言运行库(CLR) 1.2.1 平台无关性 .NET Framework 的核心是其运行库环境,称为公共语言运行库(CLR)或.NET运行库. 通常将CLR控制…
3.1     语句和语法    3.1.1   注释( # )   3.1.2   继续( \ )         一般使用换行分隔,也就是说一行一个语句.一行过长的语句可以使用反斜杠( \ ) 分解成几行.         两种例外情况一个语句不使用反斜线也可以跨行:在使用闭合操作符时,另外就是三引号包括下的字符串也可以跨行书写.   3.1.3   多个语句构成代码组(:)   3.1.4   代码组由不同的缩进分隔         核心风格:缩进四个空格宽度,避免使用制表符   3.1.…
目录 背景简述 第2章 函数式编程 背景简述 本人是一个自学一年Java的小菜鸡,理论上跟大多数新手的水平差不多,但我入职的新公司是要求转Clojure语言的.坊间传闻:通常情况下,最好是有一定Java的开发工作经验,再转CLojure可能容易一些.我入职后的实际经历也确实让我感受到了Clojure的自学难度略大于自学Java,遇到的困难主要与中文资料较少有关,具体为: 1 中文的面向新手的较为系统的教程材料较少,目前个人感觉最好用的还是<CLojure编程 Emerick著>这本书,网上应该…
目录 背景简述 第16章 Clojure与web 16.1 术语 16.2 Clojure栈 16.3 基石:Ring 16.3.1 请求与应答 16.3.2 适配函数 16.3.3 处理函数 16.3.4 中间件 16.4 用Compojure路由请求 16.5 使用模板 16.5.1 EnLive:基于选择器的HTML转换 16.6 最后的思考 背景简述 本人是一个自学一年Java的小菜鸡,理论上跟大多数新手的水平差不多,但我入职的新公司是要求转Clojure语言的.坊间传闻:通常情况下,最…
目录 背景简述 第13章 测试 13.1 术语 13.2 clojure.test 13.2.1 定义测试的两种方式 13.2.1.1 用deftest宏把测试定义成单独的函数 13.2.1.2 用with-test将测试与被测试函数绑定 13.2.2 测试"套件" 13.2.3 Fixtures 背景简述 本人是一个自学一年Java的小菜鸡,理论上跟大多数新手的水平差不多,但我入职的新公司是要求转Clojure语言的.坊间传闻:通常情况下,最好是有一定Java的开发工作经验,再转CL…
目录 背景简述 第5章 宏 5.0 术语 5.1 宏到底是什么 5.1.1 宏不是什么 5.1.2 有什么是宏能做而函数不能做的 5.1.3 宏vsRuby的eval 5.2 编写你的第一个宏 5.3 调试宏 5.3.1 宏扩展 5.4 语法 5.4.1 引述和语法引述 5.4.2 反引述与编接反引述 5.5 什么时候使用宏 5.6 宏卫生 5.6.1 Gensym来拯救 5.6.2 让宏的用户来选择名字 5.6.3 重复求值 5.7 宏的常见用法和模式 5.8 隐藏参数:&env和&fo…
目录 背景简述 第4章 多线程和并发 4.0 我的问题 4.1 术语 4.1.1 一个必须要先确定的思考基础 4.2 计算在时间和空间内的转换 4.2.1 delay 4.2.2 future 4.2.3 promise 4.3 简单地并行化 4.4 状态和标识 4.5 Clojure的引用类型 4.6 并发操作的分类 4.6.1 协调 4.6.2 同步 4.6.3 选用引用类型的标准 4.7 原子类型(Atom) 4.8 通知和约束 4.8.1 观察器 4.8.2 校验器 4.9 ref 4.…
目录 背景简述 第3章 集合类与数据结构 3.1 抽象优于实现 3.1.1 Collection 3.1.2 Sequence 3.1.3 Associative 3.1.4 Indexed 3.1.5 Stack 3.1.6 Set 3.1.7 Sorted 3.2 访问集合元素的简洁方式 3.2.1 习惯用法 3.2.2 集合.key以及高阶函数 3.3 数据结构的类型 3.3.1 List 3.3.2 vector 3.3.3 set 3.3.4 map 3.4 不可变性和持久性 3.4.…