clojure - 如何在 20% 的情况下用字符串替换整数 Clojure

标签 clojure integer lisp

我需要用 clojure 中的字符串替换一个整数,但只替换输出整数的 20%。

(defn factor5 [x]
  (if (= (mod x 3) (mod x 5) 0) "BuzzFizz"
  (if (= (mod x 5) 0) "buzz"
  (if (= (mod x 3) 0) "fizz" x))))

这里我有一个 fizzbuzz 程序,如果数字是 3 的倍数,则打印出“fizz”;如果是 5 的倍数,则打印出“buzz”;如果是两者的倍数,则打印出“BuzzFizz”。如果一个整数不是上面的乘积,则打印该整数。我需要的是打印“Boom”而不是整数,但只打印 20% 的整数。

一些伪代码

 if(x == int){
   print out Boom instead of x only for 20% }
   else{
   print out x}

我的 clojure 经验非常有限,因为我的伪代码是基于 java 的

最佳答案

请参阅the Clojure Cheatsheet以获得完整的功能列表。

你想要的是rand,还有一个像这样的测试:

(if (< (rand) 0.2) ....)

关于clojure - 如何在 20% 的情况下用字符串替换整数 Clojure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41475566/

相关文章:

emacs - 如何从 Emacs 中自动加载 leiningen repl?

clojure - 变量未在包含的 selmer 模板内扩展

设置了整数的特定位的 mySQL SELECT 行

c - 释放内存整数数组时出现段错误

R:用 "floor"和 "runif"生成随机数

scheme - 语言的 CONS 到底是做什么的?

优化 Lisp 函数调用

java - 用于 Clojure 的简单 GUI 工具包

Clojure/Incanter 数据转换功能

lisp - S 表达式习语