处女贴,不知道写什么,把今天在群里讨论的贴上来好了。
(defn ^String rand-str [N]
(loop [sb (StringBuilder. "")
x N
s (get "0123456789" (rand-int 10))]
(if (> x 0)
(recur (-> sb (.append s)) (- x 1)
(get "0123456789" (rand-int 10)))
(str sb)))
)
(rand-str 15)
这个是我写的,不喜欢(get "0123456789" (rand-int 10)) 两次,又改:
(defn ^String rand-str [N]
(loop [sb (StringBuilder. "")
x ( + 1 N)
s \ ]
(if (> x 0)
(recur (-> sb (.append s)) (- x 1)
(get "abcdefghijklmnopqrstuvwxyz0123456789" (rand-int 37)))
(clojure.string/trim sb)))
)
(rand-str 10)
不过我觉得群友的更简洁一些:
(defn rand-str [n]
(clojure.string/join (repeatedly n
#(rand-nth "abcdefghijklmnopqrstuvwxyz0123456789"))))
(rand-str 10)
还有人这样写:
(subs (str (Object.)) 17)
分享到:
相关推荐
在 Clojure 中拆分字符串 该项目演示了在 Clojure 中拆分字符串的各种方法。 选择特定变体时,不要忘记检查输入要求: 一些变体适用于字符集合并支持动态处理和无限集合,一些仅适用于已加载到内存中的字符串。 ...
clojure-humanize, 在clojure中,生成可以读的字符串 人性化的clojure 基于其他语言的类似库生成可以读字符串的Clojure(script) 库,用于数字。日期命令行 Leiningen( 。通过 Clojars ) 用法numberwordintcommaint
- `get`: 获取字符串中指定位置的字符。 - `subs`: 获取字符串的子串。 - `compare`: 比较两个字符串。 - **Regex** - `#"pattern"`, `re-find`, `re-seq`, `re-matches`, `re-pattern`, `re-matcher`, `re-...
- **在线论坛和社区**: 学习者可以通过参与Clojure的在线社区,如Clojure用户组、Stack Overflow等获取帮助和支持。 - **书籍**: 有许多优秀的书籍可以帮助深入理解Clojure的语言特性和最佳实践,如《Clojure in ...
- **数据类型**:包括但不限于数字、字符串、向量、列表、映射、集等。 - **条件处理**:使用`if`、`cond`等关键字来进行条件判断和分支处理。 - **循环结构**:通过递归或使用如`dotimes`、`for`等函数实现循环操作...
《Clojure电子书》集合包含了三本关于Clojure编程的重要书籍和一个Leiningen的Windows安装程序,这对于学习和深入理解Clojure语言至关重要。Clojure是一种基于Lisp的函数式编程语言,它运行在Java虚拟机(JVM)上,...
Clojure是一种基于Lisp家族的函数式编程语言,它运行在Java虚拟机(JVM)上,同时也支持JavaScript和其他平台。Clojure的设计目标是提供一个高效、并发、可移植的环境,适合解决现代软件开发中的复杂问题。在这个...
根据提供的文件内容,我们可以提取出以下关于Clojure语言的知识点: Clojure是一种编程语言,它给作者留下了深刻的印象,并且被视为一种多用途的、全面的编程语言。作者在开始学习Clojure时,体会到了编程的乐趣,...
### 编程Clojure:全面解析与学习指南 #### 一、Clojure语言概述 《Programming Clojure》是一本深入探讨Clojure编程语言的书籍,该书由Stuart Halloway编写,出版于2009年3月,由Pragmatic Bookshelf出版社发行。...
Clojure拥有一系列的基本数据类型,包括数字(整数、浮点数)、字符、字符串、关键字(keywords)、符号(symbols)和列表(lists)。在提供的文档片段中,可以看到使用了str函数来合并字符串,例如 `(str "Hello" ...
例如,如果`HelloWorld`类有一个接受字符串参数的构造函数,我们可以通过`new`关键字创建实例: ```clojure (let [instance (new com.example.HelloWorld "Clojure is calling!")] (.sayHello instance)) ``` ...
Clear, practical Clojure for the professional programmer Professional Clojure is the experienced developer's guide to functional programming using the Clojure language. Designed specifically to meet ...
[2009] Programming Clojure.(Stuart Halloway).[1934356336].pdf [2010] Functional Programming with Clojure - Simple Concurrency on the JVM.(Tim Berglund, Matthew McCullough).[193650202X].pdf [2010] ...
Clojure是一种基于Lisp的函数式编程语言,它运行在Java虚拟机(JVM)上,充分利用了Java的生态系统。Clojure的设计目标是提供一种静态类型的、并发的、内存安全的语言,同时保持Lisp的简洁性和灵活性。在这个压缩包...
它提供了一种高效、灵活的方式来获取API数据,允许客户端指定他们需要什么数据,从而避免了过度获取或不足获取的问题。Lacinia是基于Clojure实现的一个GraphQL解析器,它为Clojure开发者提供了直接在Clojure环境中...
### Clojure 数据分析实战指南 #### 一、书籍概述与背景 《Clojure 数据分析实战指南》是一本针对数据分析师和技术开发人员的实用手册。本书由 Eric Rochester 编写,旨在帮助读者通过超过110个实用案例深入了解...