`
jinshunlong
  • 浏览: 5528 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Clojure--jvm下的lisp

阅读更多
作为当今最主流的运算平台JVM,把函数式编程语言引入JVM也是很多人尝试的方向,Clojure就是其中之一。Clojure是一个在JVM平台运行的动态函数式编程语言,其语法解决于LISP语言,在JVM平台运行的时候,会被编译为JVM的字节码进行运算。

Clojure保持了函数式语言的主要特点,例如immutable state,Full Lisp-style macro support,persistent data structures等等,并且还能够非常方便的调用Java类库的API,和Java类库进行良好的整合。

(new java.util.Date)
=> Wed Oct 17 20:01:38 CEST 2007

(. (new java.util.Date) (getTime))
=> 1192644138751 

(.. System out (println "This is cool!"))
This is cool!


Lisp风格的宏

(defmacro time [form]
  `(let [t0# (. System (currentTimeMillis))
         res# ~form
         t1# (. System (currentTimeMillis))]
    (.. System out (println (strcat "Execution took "
                                    (/ (- t1# t0#) 1000.0) " s")))
    res#))

Usage:
(defn factorial [n]
   (if (< n 2)
       1
       (* n (factorial (- n 1)))))

(time (factorial 1000))
=> Execution took 0.012 s
     40…


Clojure的主页: http://clojure.org/
分享到:
评论

相关推荐

    来源clojure-toolbox.com___下载.zip

    1. **Clojure编程语言**:Clojure是一种基于Lisp的函数式编程语言,运行在Java虚拟机(JVM)上。它强调 immutability(不可变性)、concurrency(并发性)和functional programming(函数式编程)特性。 2. **函数...

    clojure-1.6.0-RC3.zip

    Clojure是一种基于Lisp的函数式编程语言,它运行在Java虚拟机(JVM)上,充分利用了Java生态系统的优势。这个压缩包很可能是Clojure 1.6.0-RC3的源代码发布,开发者可以下载、编译和测试以确保其稳定性和兼容性。 ...

    Clojure入门教程- Clojure – Functional Programming for the JVM中文版

    - **Clojure**是一种运行在Java虚拟机(JVM)上的动态编程语言,它继承了Lisp家族的强大功能,同时结合了现代编程语言的优点,如面向对象编程和函数式编程。 #### 二、Clojure的特性 - **函数式编程**: Clojure强调...

    clojure-decompiler:Clojure 编译器生成的 JVM 类文件的反编译器

    Clojure 是一种基于 Lisp 的函数式编程语言,它运行在 Java 虚拟机(JVM)上。作为 JVM 的一门语言,Clojure 编译后的代码会转换为 JVM 字节码,使得它能与其他 Java 应用程序无缝集成。然而,由于 Clojure 的语法与...

    clojure-must-watch-源码.rar

    Clojure是一种功能强大的Lisp方言,它在Java虚拟机(JVM)上运行,并且具有丰富的函数式编程特性。这个压缩包"clojure-must-watch-源码.rar"似乎包含了与Clojure相关的源代码,可能是为了帮助学习者深入理解Clojure...

    clojure-sha-3-源码.rar

    Clojure是一种基于Lisp的现代函数式编程语言,它运行在Java虚拟机(JVM)上,充分利用了Java平台的强大功能。SHA-3,全称为Secure Hash Algorithm 3,是美国国家标准与技术研究所(NIST)发布的一种密码散列函数标准...

    clojure-basics-源码.rar

    Clojure是一种基于Lisp的函数式编程语言,它运行在Java虚拟机(JVM)上,充分利用了Java的生态系统。这个“clojure-basics-源码.rar”压缩包很可能是包含了一些基本Clojure编程概念的示例代码或者教程。虽然没有具体...

    clojure1.3.0及资料

    Clojure是一种基于Lisp的函数式编程语言,它运行在Java虚拟机(JVM)上,充分利用了Java的生态系统。Clojure的设计目标是提供一种静态类型的、并发的、内存安全的语言,同时保持Lisp的简洁性和灵活性。在这个压缩包...

    clojure-1.10.2-alpha2.jar

    Clojure是一种LISP风格的语言,运行在JVM上。Clojure的一大特色就是其并发机制,它支持不可变的数据结构(Clojure是来自于可持久化的数据结构)。Clojure还有一个特色是软件事务存储(Software Transactional Memory...

    programming-clojure-3rd

    《Programming Clojure 第三版》是一本深入探讨Clojure编程语言的专业书籍,旨在帮助开发者全面理解和掌握这门基于Lisp的现代函数式编程语言。Clojure是由Rich Hickey设计的,它运行在Java虚拟机(JVM)上,同时也...

    clojure-scripting:使用JVM Clojure编写脚本的第一步

    Clojure是一种基于Lisp的函数式编程语言,它运行在Java虚拟机(JVM)上,提供了与Java的无缝交互。Clojure Script是Clojure的一个分支,主要用于浏览器端的JavaScript环境,但随着GraalVM的出现,我们现在也可以在...

    Clojure电子书合集1(12本)

    [2010] Practical Clojure - Full Introduction to Clojure, a full Lisp variant for the JVM.(Luke VanderHart, StuartSierra).[1430272317].pdf [2010] Seven Languages in Seven Weeks - A Pragmatic Guide to ...

    clojure-mxnet:MXNET的Clojure软件包

    Clojure是一种基于Lisp的现代编程语言,它运行在Java虚拟机(JVM)上,具有强大的并发处理能力和简洁的语法。它特别适合处理大规模数据和构建复杂系统。MXNet则是一个深度学习框架,它支持符号和 imperative(命令式...

    初级java笔试题-iterate-clojure-workshop12:迭代clojure-workshop12

    Lisp 语言 (),专为并发性、简单性和生产力而设计。 Clojure 我们在交互式 Web 开发和数据分析方面特别受欢迎。 研讨会首先简要概述您可能想要考虑 Clojure 的原因,然后介绍在一系列练习中构建有用的东西所必需的...

    clojure-ipfs-api:Clojure的IPFS包装器

    Clojure 是一种基于 Lisp 语法的现代函数式编程语言,它运行在 Java 虚拟机上,充分利用了 JVM 的优势,如跨平台兼容性和丰富的生态系统。`clojure-ipfs-api` 库的出现,使得 Clojure 开发者能够利用 IPFS 的特性,...

    clojure-deps-edn:基于deps.edn的项目的有用配置和别名的集合

    Clojure 是一种功能丰富的 Lisp 衍生语言,它在Java平台上运行,并充分利用了JVM的优势。`deps.edn`是Clojure CLI工具引入的一种依赖管理方式,它替代了早期的Leiningen或Boot等构建系统。这篇内容将深入探讨`...

    clojure-app-engine:在Google App Engine上开始使用Clojure的框架

    1. **Clojure语言**:Clojure是一种基于Lisp的函数式编程语言,运行在Java虚拟机(JVM)上,拥有强大的并发处理能力和动态类型系统。其语法简洁,强调代码即数据,支持宏和元编程,适合构建复杂且高性能的应用程序。...

    clojure-ttt:Clojure 中的井字游戏

    Clojure是一种基于Lisp的函数式编程语言,它运行在Java虚拟机(JVM)上,充分利用了Java生态系统的优势。在clojure-ttt项目中,我们能看到Clojure如何以其简洁、富有表达力的语法来构建一个复杂的交互系统。 首先,...

    clojure-rust:Clojure转换为Rust编译器

    Clojure是一种基于Lisp的函数式编程语言,运行在Java虚拟机(JVM)上,强调简洁的语法、并行性和内存安全。它被广泛用于构建分布式系统、Web应用以及处理大规模数据。Rust则是一种现代、高性能的系统级编程语言,以...

    clojure-dependency-update-action:一个简单的GitHub Actions,用于为过时的工具创建请求请求。

    Clojure 是一种基于Lisp的函数式编程语言,它运行在Java虚拟机(JVM)上,具有强大的元编程能力和动态性。在这个场景中,"clojure-dependency-update-action"是一个专门为Clojure项目设计的GitHub Actions。GitHub ...

Global site tag (gtag.js) - Google Analytics