首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏一个会写诗的程序员的博客

    Clojure使用Java方法Clojure使用Java方法

    Clojure使用Java方法 Clojure有个很强大的功能,就是你可以使用Lisp语言风格无缝调用java api(java interop).这无疑是如虎添翼. 调用一个Java对象的方法 语法: .method-name object-value args ... user=> (.toUpperCase "hello,clojure") "HELLO,CLOJURE System (getProperties)(get "os.name")) "Mac OS X" com.lightsword=> (.substring "hello,clojure" 6) "clojure "Clojure!") "Clojure!" #_=> (.push "Clojure.") #_=> ) ["Hello!" "Clojure."]

    1.8K20发布于 2018-08-20
  • 来自专栏高性能分布式系统设计

    Clojure 启动出错

    X:\clojure-1.3.0>java -cp clojure.jar main Exception in thread "main" java.lang.NoClassDefFoundError: 把 clojure-1.3.0.jar 改名为: clojure.jar 问题就解决了。 唉。还是喜欢Mac平台。

    1.7K60发布于 2018-04-13
  • 来自专栏云计算

    Clojure和CloudStack

    Clojure是LISP的一种变体,因此基本上可以看作一种函数式编程语言。 您可以在浏览器中尝试使用Clojure,并熟悉它的交互式解释器(REPL)。 -0.5.3.pom from central Retrieving org/clojure/clojure/1.4.0/clojure-1.4.0.pom from central Retrieving /0.5.3/core.unify-0.5.3.jar from central Retrieving org/clojure/clojure/1.4.0/clojure-1.4.0.jar from /clojure/1.3.0/clojure-1.3.0.pom from central Retrieving org/clojure/data.json/0.2.2/data.json-0.2.2. 在你自己的Clojure项目中使用CloStack 在clojure中编写“你好,世界!

    1.5K60发布于 2018-01-11
  • 来自专栏编舟记

    Clojure component 设计哲学

    这是 Clojure component 框架的简介,里面涉及了关于状态管理和依赖注入的设计思路,值得借鉴。 0.2.3 版本的 Component 兼容 Clojure 1.4.0 及其以上版本。 Component 需要依赖我的 dependency 库 讨论 请在 Clojure Mailling List 提问。 无需 lifecycle 的 component 可以是一个普通的 Clojure map。 Scope Clojure in the Large (video) Relevance Podcast Episode 32 (audio) My Clojure Workflow, Reloaded

    1.4K00发布于 2018-10-11
  • 来自专栏蘑菇先生的技术笔记

    clojure基础入门(一)

    下载clojure的环境 包,下载地址。 解压后用命令行进入到clojure目录下,输入下面命令进入REPL命令行交互界面: java -cp clojure-1.7.0.jar clojure.main ? 欢迎进入clojure的世界。  ? 变量 Clojure中的变量可以def关键字来声明:  ? clojure数据类型是弱类型,对应java中的object,然后通过变量名直接调用。 函数 clojure中以函数为第一类对象,其小括号后面第一个元素被Clojure解释器当成一个函数或宏,其后面的都会被当成参数。 宏(macro)           Clojure中几乎所有的函数和宏都是用Clojure代码实现的,关于宏后面再说。  

    2K30发布于 2018-06-20
  • 来自专栏EmacsTalk

    Clojure 开发那些事

    Clojure —— 新世纪的 Lisp 方言,相信大多数同学多多少少都听过,毕竟有个杀手级应用 Storm,但是真正去写 Clojure 的同学估计不多,国内也罕见哪个公司招 Clojure 程序员。 作为万里长城的第一步,这篇文章首先如何入门 Clojure 语法,紧接着介绍 Clojure 开发环境搭建,然后介绍使用第三方库时的一些注意点,最后介绍一下常见的测试方法。 Clojure编程,这本书应该毋庸置疑是新手的必须书 除了看书外,下面的文档写的也非常 newbie-friendly,推荐大家多去逛逛: http://clojure-doc.org/,对 Clojure Clojure 的宿主语言现在主要有两个:一个是最多最多的的基于 JVM 的;另一个是基于微软 .NET 的 Clojure-CLR,现在还有一个发展迅猛的 ClojureScript,可以将 Clojure 上面是我目前收集关于 Clojure 的 RSS,大家可以根据标题去搜索,热爱 Clojure ,从不做伸手党开始。 PS: 最后祝大家元旦快乐。

    2.3K20编辑于 2022-07-26
  • 来自专栏编舟记

    Clojure集合管道函数练习

    我就想啊,论函数式编程,舍Clojure其谁?而且我在Clojure很少能写出loop... recur这样偏底层的循环代码。话不多说,撸起袖子开工。 Clojure 解法 转换数据格式 原题中给的是json的格式,不适合在Clojure中处理,所以我们手工转换成需要的形式,如下: 清单1-1 数据定义 (def rooms [{:room-id 它的文档描述如下: (doc juxt) -> clojure.core/juxt [f] [f g] [f g h] [f g h & fs] Added in 1.1 Takes a set ))) (type (make-map 9)) ;; => clojure.lang.PersistentArrayMap (type (make-map 10)) ;; => clojure.lang.PersistentHashMap 至于为什么是这样的顺序,需要深入Clojure的hash算法和数据结构当中,有时间另起一篇博客解释。

    1.5K20发布于 2018-08-17
  • 来自专栏米扑专栏

    Clojure 学习入门(12)—— mappmap

    clojure map数据结构的常用方法,小结一下 map 各种排序 (println (sorted-map-by > 1 "a", 2 "b", 3 "c")) ;; {3 c, 2

    67420发布于 2019-02-18
  • 来自专栏一个会写诗的程序员的博客

    Clojure与LispClojure与Lisp

    Clojure与Lisp "Lisp 不是一门语言,它是一种构建素材。" Clojure 是完全的,真正意义上的神圣的lisp语言的一个方言. lisp语言因为其无以伦比强大能力和几乎无穷的表达力而获得了盛誉,Clojure自然也不例外. Clojure 修正上面的大多数这些问题. 它保留了 lisp 的思想和哲学,并同时清除了过去的很多限制. Clojure 高速、干净、具有优先能力和优雅的特征. Clojure简介 运行于Java虚拟机的List方言Clojure. Clojure 不仅可在 JVM 上运行,而且可以与Java无缝融合(JVM平台的语言家族原则上都支持)的互操作性。最后,Clojure 在设计上也考虑了并发性,并具有并发编程的一些独特特性。

    2.6K30发布于 2018-08-20
  • 来自专栏蘑菇先生的技术笔记

    clojure基础入门(一)

    下载clojure的环境 包,下载地址。 解压后用命令行进入到clojure目录下,输入下面命令进入REPL命令行交互界面: java -cp clojure-1.7.0.jar clojure.main ? 欢迎进入clojure的世界。  ? 变量 Clojure中的变量可以def关键字来声明:  ? clojure数据类型是弱类型,对应java中的object,然后通过变量名直接调用。 函数 clojure中以函数为第一类对象,其小括号后面第一个元素被Clojure解释器当成一个函数或宏,其后面的都会被当成参数。 宏(macro)           Clojure中几乎所有的函数和宏都是用Clojure代码实现的,关于宏后面再说。  

    1.8K40发布于 2018-05-21
  • 来自专栏米扑专栏

    Clojure 学习入门(13)—— binding

    Clojure里面是不支持变量的。 从 Clojure 1.3开始, binding只能用在 动态变量(dynamic var)上面了. 下面的例子演示了怎么定一个dynamic var。 下面的例子介绍了def,let 和binding的用法: ; clojure connect to mysql ; ithomer.net ; 2013.12.10 (ns myClojure.syntax.binding 3 f1: v = 3 f3: after binding v = 1 f4: after binding v = 4 f1: v = 4 after calling f4, v = 4 参考推荐: Clojure 入门教程 Clojure 基本语法

    86550发布于 2019-02-18
  • 来自专栏米扑专栏

    Clojure 学习入门(10)—— httpkit

    Http-kit 是主要由Java 和 Clojure开发,为Clojure定制的零依赖的HTTP lib,仅用3000多行代码,实现了高性能 Server,Client,Timer。 示例 2: 代码: ; clojure connect to mysql ; ithomer.net ; 2013.12.10 (ns myClojure.syntax.httpkit3 (:use org.httpkit.server]) (:require [compojure.route :as route])) (defn show-landing-page [req] ;; ordinary clojure hiccup) (println "

    Hello World

    ") ) (defn update-userinfo [req] ;; ordinary clojure form param (println user-id password) )) (defn get-user-by-id [req] ;; ordinary clojure

    1.1K60发布于 2019-02-18
  • 来自专栏米扑专栏

    Clojure 学习入门(19)—— 数组

     11 \a)) 2.4 使用Clojure序列库 2.4.1 通用版序列库 1 ; clojure.lang.LazySeq 2 ; clojure.lang.LazySeq 2.4.2 数组专用序列库 Clojure version 1.0 doubles `Casts to double[]` Added in Clojure version 1.0 chars `Casts to chars[]` Added in Clojure version 1.1 booleans `Casts to boolean[]` Added in Clojure version 1.1 引用类型可以用to-array Clojure数组专题到此为止,之后会继续以专题的形式总结其他的API。 之前没注意这个,在《The Joy Of Clojure》中看到。

    1.3K40发布于 2019-02-18
  • 来自专栏python前行者

    windows搭建clojure开发环境

    project.clj配置 1、单独运行的clojure 关于clojure是什么东西就自行百度了,简单说就是用Lisp语言写的程序,编译成.class放在jvm上面跑,所以是需要jre的。 独立的clojure可以从官方网站找到,目前稳定版本是1.8,官网https://clojure.org/index。 https://repo1.maven.org/maven2/org/clojure/clojure/1.8.0/clojure-1.8.0.zip 2、安装leiningen 这个是clojure上类似 更多资源可以通过我们公司的Clojure站点学习,Clojure学习 4、运行和打包lein项目 由于实际项目中,都要用到第三方包,所以依赖关系的处理就无法避免了。 :dependencies [[org.clojure/clojure "1.1.0"] [org.clojure/clojure-contrib "1.1.0"]

    2.9K10发布于 2021-11-30
  • 来自专栏米扑专栏

    Clojure 学习入门(11)—— 宏 macro

    clojure macro宏在运行之前机械展开,定义宏相当于给语言增加新特性,写宏的*原则*:  能写成函数就不要用宏(因为写宏没有写函数简单直观,容易写错,需要先在 REPL 中测试一番)  10 (+ 5 2)) (println (macroexpand-1 '(op 5 + 2 * 10))) ;; (* 10 (+ 5 2)) (println (clojure.walk ;; 2 (println (macroexpand-1 '(op2 5 + 2 * 10))) ;; 2 (println (clojure.walk 2 * 10) (println (macroexpand-1 '(op3 5 + 2 * 10))) ;; (op3 5 + 2 * 10) (println (clojure.walk

    1.3K20发布于 2019-02-18
  • 来自专栏米扑专栏

    Clojure 学习入门(1)—— 学习资料

    Clojure 的理念和特性 Clojure是什么,为什么有人要学这门语言? 抛开Clojure的学术背景,Clojure 是主要设计原则是坚持: 有用性(useful 有益处的) 高于可用性. 302/clojure-functional-programming-for-the-jvm-clojure-tutorial/ 2. clojure文档翻译  http://code.google.com /p/clojure-doc-en2ch/w/list 3. clojure手册(低版本)  http://qiujj.com/static/clojure-handbook.html 4. clojure 开源工具:  clojure工具箱汇总:  http://www.clojure-toolbox.com/ ring server:  https://github.com/ring-clojure

    1.8K10发布于 2019-02-18
  • 来自专栏米扑专栏

    Clojure 学习入门(6)—— 函数定义

    name is " name))) ;定义重载的函数(无参数、一个参数) #'user/f5 user=> (f5) ; 无参数 "no parameter" user=> (f5 "clojure ") ; 一个参数 "my name is clojure" user=> (defn f1 [& a] (str a)) ;定义变参函数 #'user/f1 user=> (f1 with-precision) java.lang.Exception: Can't take value of a macro: #'clojure.core/with-precision (NO_SOURCE_FILE >=) true 参考推荐: clojure 学习

    1.1K50发布于 2019-02-18
  • 来自专栏米扑专栏

    Clojure 学习入门(14)—— 循环控制

    Clojure 基于函数的流程控制 repeatedly 字面意思为重复函数。

    72020发布于 2019-02-18
  • 来自专栏米扑专栏

    Clojure 学习入门(8)—— 连接mongodb

    clojure 连接 mongodb示例 project.clj 文件添加monger依赖: [com.novemberain/monger "1.5.0"] (defproject myClojure :url "http://www.eclipse.org/legal/epl-v10.html"} :dependencies [ [org.clojure /clojure "1.5.1"] [org.clojure/java.jdbc "0.0.6"] [org.clojure/clojure-contrib 5.1.26"] [com.novemberain/monger "1.5.0"] ]) 示例代码: ; clojure 参考推荐: Monger, a Clojure client for MongoDB clojure简单操作mongo

    1.2K50发布于 2019-02-18
  • 来自专栏米扑专栏

    Clojure 学习入门(17)—— 异常处理

    异常处理 Clojure代码里面抛出来的异常都是运行时异常。当然从Clojure代码里面调用的java代码还是可能抛出那种需要检查的异常的。 NO_SOURCE_FILE:1)   user=> (assert 0)   nil   user=> (assert [1 2 3])   nil   user=> (assert "foo")   nil   clojure

    49020发布于 2019-02-18
领券