clojure中使用call/cc 技术

scheme中自带的call/cc在极端场景下可以优化流程控制代码的编写,同为lisp方言的clojure确没有原生支持这个功能,目前发现了一个开源模块以宏的方式提供call/cc 支持项目地址https://github.com/swannodette/delimc
作者:admin发表于:2018-10-23 17:37:25

reagent 框架前端路由的使用

最近试着使用shadow-cljs和reagent开发web前端,一起步马上发现reagent好像没有提供路由模块,试着自己简单实现了一个通过几行代码实现了router模块 (ns app.utils.route (:require [reagent.core :refer [atom]]           [app.utils.string
作者:admin发表于:2018-10-18 19:05:48

clojure 计算字符串md5

(defn get-str-md5 [s] (apply str (map (partial format "%02x") (.digest (doto (java.security.MessageDigest/getInstance "MD5") .reset (.update (.getBytes s)))))))本来想上网找下clojure计算md5的代码,没想到找到了个各种语言计算字符串md5值的大
作者:admin发表于:2018-08-14 09:32:39

clojure Java互操作之 extend-type

在clojure与Java的互操作中有个小问题,就是Java的对象是没有成员属性的这个概念的,在clojure可以使用extend-type这个宏为Java的对象添加成员属性(extend-type java.util.Date IMatchLookup (val-at* [this k not-found] (case k :year (.getYear this) :month (.getMonth thi
作者:admin发表于:2018-06-19 18:03:14

clojure 生态圈

clojure基于jav生态理论上可以用maven仓库里面所有的资源,不过还是使用clojure的包比较友好一些,目前发现了两个查找clojure依赖库的网站https://www.clojure-toolbox.com/https://clojars.org/
作者:admin发表于:2018-01-24 09:50:32

用clojure分析mysql慢日志文件

最近有个dba请求我帮忙写个程序把mysql慢日志文件中的指定记录提取出来(比如query_time 时间大于1秒钟的查询)mysql-slow.log 文件内容如下用于分析的clojure代码如下(ns mysql-slow.core (:require [clojure.java.io :as io] [clojure.string :as str]) (:gen-class))(def
作者:admin发表于:2018-01-23 12:33:59

clojure命名空间的使用

在实际项目中通常不能把函数都写在一个命名空间里面,比如我把一个生成md5的方法提取出来tools.clj(ns spider.tools)(import [java.security MessageDigest])(import [sun.misc BASE64Encoder])(defn str-md5 [str] (let [md5 (MessageDigest/getInstance "md5") b
作者:admin发表于:2018-01-10 15:43:56

clojure调用java类库

clojure要使用java的类库必须使用import语句导入比如我现在要使用java的md5加密的类MessageDigest(ns spider.tools)(import [java.security MessageDigest])(defn str-md5 [str] (let [md5 (MessageDigest/getInstance "md5")] (println md5)) )
作者:admin发表于:2018-01-10 15:30:26

4clojure 题解 Reverse Interleave

按照数值给一个序列交错分组Write a function which reverses the interleave process into x number of subsequences.(= (__ [1 2 3 4 5 6] 2) '((1 3 5) (2 4 6)))(= (__ (range 9) 3) '((0 3 6) (1 4 7) (2 5 8)))(= (__ (range 10) 5) '((0 5) (1 6) (2 7) (
作者:admin发表于:2017-12-29 17:22:33

4clojure 题解 Set Intersection

求两个set的交集合,不允许使用IntersectionWrite a function which returns the intersection of two sets. The intersection is the sub-set of items that each set has in common.(= (__ #{0 1 2 3} #{2 3 4 5}) #{2 3})(= (__ #{0 1 2} #{3 4 5}) #{})(= (__ #{:a :b :c
作者:admin发表于:2017-12-29 16:15:31
331234»

Copyright © 2012-2014 我的代码板 Inc. 保留所有权利。

页面耗时0.0227秒, 内存占用1.9 MB, 访问数据库11次

闽ICP备15009223号-1