阅读更多

13顶
0踩

编程语言

原创新闻 Clojure - Java平台的Erlang

2007-10-21 11:22 by 见习编辑 robbin 评论(4) 有19798人浏览
Erlang是近两年非常吸引眼球的函数式编程语言,因为Erlang能够做到code-as-data,以及数据不变的特性,因此非常适合大规模,高并发负载的应用环境。特别是随着现在多核CPU的广泛应用,并行运算成为了一个热点话题。

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

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

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将成为JVM平台的Erlang,想想看,Clojure还能够直接调用Java的类库,真是令人兴奋。

Clojure的主页:

http://clojure.sourceforge.net/
13
0
评论 共 4 条 请登录后发表评论
4 楼 ddkk 2011-11-07 10:49
Arbow 写道
感觉仅仅是基于jvm平台的函数式语言,scala比它更加完善

Java整合示例中的代码让我眼前一亮
scala中也有类似的语法吗?
3 楼 billgui 2009-01-02 15:38
除了多核CPU,Clojure是否支持多机集群呢?Erlang可以很方便地支持多机集群的。
2 楼 sp42 2007-10-22 18:55
说到jvm上FP,JAVA 1.6 的rhino 本身就是 FP的一种...
1 楼 Arbow 2007-10-21 19:43
感觉仅仅是基于jvm平台的函数式语言,scala比它更加完善

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • iOS7人机界面设计指南

    为 iOS7 而设计 以内容为核心 保证清晰度 用深度来体现层次 iOS 应用解析 起始与停止 即时启动 时刻准备好停止 布局 导航 模态对话 交互性和反馈 反馈能帮助用户理解 输入信息过程需要简易 术语和措辞 动画 排版...

  • iOS7人机界面指南-UI元素

    你可以将状态栏风格设计为全应用统一,或者为应用里不同的视图定义不同的状态栏风格。你可以通过阅读UIApplicationClassReference与UIViewControllerClassReference来分别了解更多关于UIStatusBarStyle常数和...

  • iOS8人机界面指南(三)

    美学完整性并不评判应用的视觉设计,或者用来描述应用的风格特征。美学完整性是指一款应用的视觉表现和交互行为在与功能结合后所传达出的整体一致性。人们关心应用是否提供了应有的功能,但是也会潜移默化甚至是很...

  • iOS8人机界面指南(一)

    2.其次,直接使用iOS的系统主题让其成为应用的UI,这样能给用户统一的视觉感受。3.最后,保证你设计的UI可以适应各种设备和不同操作模式,这样用户可以在不同场景下舒适地享用你的应用。在整个设计过程中,时刻准备...

  • IOS10人机界面设计指南.pdf

    IOS10人机界面设计指南.pdf

  • iOS9人机界面指南

    iOS9人机界面指南 人机交互设计 基础必备

  • iOS 人机界面指南 ISUX 原创翻译(上)

    【为 iOS7 而设计】 [以内容为核心] [以内容为核心] [用深度来体现层次] 【为 iOS7 而设计】 【起始与停止】 [即时启动] [时刻准备好停止] [布局] [导航] [模态对话] [起始与停止] 反馈能帮助用户理解 输入信息...

  • iOS 9人机界面指南(一):UI设计基础

    本文译自苹果推出的设计文档《iOS Human Interface Guidelines 》(2015 年10 月21日) , 由腾讯ISUX 商业产品设计中心以下设计师翻译整理:

  • iOS8人机界面指南

    这是讲述iOS8下,UI设计中,人机交互界面的指导内容,你值得拥有!

  • iOS8 人机交互指南

    iOS关于界面设计与客户交互相关指导操作, 学习相关知识更利于开发一个受人欢迎的App.

  • ios人机交互指南.zip

    ios人机交互指南中文版,包含人机界面设计原则,设计策略等,想要的朋友可以拿走了。

  • iOS人机界面设计

    ( IOS+10人机界面设计指南++中文 界面设计上的一些技巧

  • jsp物流信息网建设(源代码+论文)(2024vl).7z

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;

  • 中小学教师教育教学情况调查表(学生家长用).docx

    中小学教师教育教学情况调查表(学生家长用)

  • 航空车辆检测8-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar

    航空车辆检测8-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rarTepegozz-V2 2024-04-21 12:16 pm ============================= *与您的团队在计算机视觉项目上合作 *收集和组织图像 *了解和搜索非结构化图像数据 *注释,创建数据集 *导出,训练和部署计算机视觉模型 *使用主动学习随着时间的推移改善数据集 对于最先进的计算机视觉培训笔记本,您可以与此数据集一起使用 该数据集包含4794张图像。 Tepegozz以可可格式注释。 将以下预处理应用于每个图像: *像素数据的自动取向(带有Exif-Arientation剥离) *调整大小为640x640(拉伸) 应用以下扩展来创建每个源图像的3个版本: *水平翻转的50%概率 *垂直翻转的50%概率 *随机裁剪图像的0%至20% * -15和+15度之间的随机旋转 * 0到1.7像素之间的随机高斯模糊 *将盐和胡椒噪声应用于0.1%的像素 以下转换应用于每个图像的边界框: *以下90度旋转之一的同等概

  • LabVIEW实现NB-IoT通信【LabVIEW物联网实战】

    资源说明:https://blog.csdn.net/m0_38106923/article/details/144637354 一分价钱一分货,项目代码可顺利编译运行~

  • jsp网上购书系统设计(源代码+论文)(202490).7z

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;

  • jsp网络购物系统[适合毕业设计](202429).7z

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;

Global site tag (gtag.js) - Google Analytics