试玩儿Clojure
Posted 像什么
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了试玩儿Clojure相关的知识,希望对你有一定的参考价值。
(图:by 颖子临摹)
无意间看到现在用Clojure的渐渐多了起来,今天上午就了解了一下这门语言。
Clojure,2007年首次公开发布,算一算也近13个年头了。自诞生以来,Clojure受到业内一众大佬的推崇,这应该与人们对Lisp一直保有的热情也有关系。在近年来最爱欢迎的语言榜单上,Clojure也常年能居于前列,从业人数还是有一定数量。印象中的Lisp是门“括号”的语言,这次借着Clojure来体验一把。
Clojure运行在JVM之上,所以试的时候主要试一下Clojure定义函数和调用现成的Java类。
先做个简单的函数定义示例
1(ns com.sthlike.clojure.Demo)
2
3(defn hello [name]
4 (println (format "hello, %s" name)))
5
6(hello "sun")
执行结果如下
hello, sun
接下来试一试实例化一个Java对象,再调用其方法。这边我们用一个简单的冒泡排序类来演示。Java类定义如下
1public class Bubble implements Sortable {
2 public void sort(int[] ints) {
3 for (int i = 0; i < ints.length - 1; i++) {
4 for (int j = 0; j < ints.length - 1; j++) {
5 if (ints[j] > ints[j + 1]) {
6 Utils.swap(ints, j + 1, j);
7 }
8 }
9 }
10 }
11}
现在看下Clojure如何引入、实例化和调用方法。
先是引入Java类声明
1(ns com.sthlike.clojure.Demo
2 (:import com.sthlike.sort.Bubble))
接下来声明一个int数组,作为排序要用的参数,之后再实例化排序对象,调用排序方法,并打印一下排序后的结果。
1(def arr (int-array [3 5 2 1]))
2(println (seq arr))
3
4(def bubble (Bubble.))
5(.sort bubble arr)
6(println (seq arr))
执行结果如下
(3 5 2 1)
(1 2 3 5)
到这里试玩儿结束,现在没有精力了解更深入,挖个坑在这里,以后再来挖挖这门语言。
往期文章
以上是关于试玩儿Clojure的主要内容,如果未能解决你的问题,请参考以下文章
在这个简单的Clojure Ring应用程序中获取默认index.html文件以具有正确的Content-Type的正确方法是什么?