Java 如何使用随机唯一数从大小(等于用户输入)填充数组?CLOJURE

Java 如何使用随机唯一数从大小(等于用户输入)填充数组?CLOJURE,java,algorithm,intellij-idea,clojure,bubble-sort,Java,Algorithm,Intellij Idea,Clojure,Bubble Sort,目前正在编程bubblesort算法。 我找到了网站上某个人的源代码: Scanner sc = new Scanner(System.in); System.out.println("Enter the size of the array which you would like to create: "); 应用程序现在所做的是,它接受用户的输入号码。并生成一个随机数数组。使用此数组,它将应用Bubblesort算法 现在,我想把这个翻译成Clojure。 我知道用户输入可以通过以下功能实

目前正在编程bubblesort算法。 我找到了网站上某个人的源代码:

Scanner sc = new Scanner(System.in);
System.out.println("Enter the size of the array which you would like to create: ");
应用程序现在所做的是,它接受用户的输入号码。并生成一个随机数数组。使用此数组,它将应用Bubblesort算法

现在,我想把这个翻译成Clojure。 我知道用户输入可以通过以下功能实现:

Flush

除此之外,我不知道如何获得用户输入的所需数组大小,然后创建一个随机数数组,然后应用冒泡排序。 到目前为止,这就是我所拥有的(Bubblesort从rosetta网站上找到):

需要:

  • 用户输入
  • 创建用户输入大小的随机数数组
提前谢谢

编辑:

用户输入:

    def(input
      (println "Enter the size of the array: ")
    )
    println(read-line)
输入应该决定数组的大小

剩余部分:


使用输入表示的大小的唯一随机数填充数组。

使用
读取行
读取输入后,可以使用
读取字符串
将其解析为整数,然后使用
兰德
生成随机数。之后,使用
to array
将它们转换为Java数组。以下函数将提示用户输入数组大小,并返回0到1之间的随机数数组:

(defn random-array-prompt []
  (print "Enter array size:")
  (let [n (read-string (read-line))]
    (to-array (repeatedly n rand))))
之后,可以在repl中调用该函数:

(println (seq (bubble-sort (random-array-prompt))))

这将提示您输入大小并打印排序顺序。

谢谢您的评论。我对clojure很陌生,也许我不理解它,但这不起作用?有什么提示吗?你能说得更具体一点吗?你收到任何错误消息吗?线程“main”java.lang.RuntimeException中的异常:阅读时出现EOF,这就是我收到的错误消息..我的错误,我的代码段中缺少括号(def而不是defn)。更正了它并添加了一些解释-请查看答案。另外,如果您在学习Clojure的同时有Java背景,那么您可以从Clojure的一般介绍开始,如下所示:然后学习如何使用Java数组以及与Java的集成。
(defn random-array-prompt []
  (print "Enter array size:")
  (let [n (read-string (read-line))]
    (to-array (repeatedly n rand))))
(println (seq (bubble-sort (random-array-prompt))))