首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clojure因式分解

Clojure因式分解
EN

Stack Overflow用户
提问于 2020-03-03 20:01:27
回答 1查看 66关注 0票数 0
代码语言:javascript
复制
(ns factorials)

(defn displayFactorials[number]
    (if (> number 1)
        (do
        (* number (displayFactorials(- number 1))))))

(defn -main []
    (println "To display the factorials,")
    (print " enter the number: ") (flush)
    (let
        [ number (double (read))]
        (println)
        (displayFactorials number)
        (println)
    )
)

我正在编写一个阶乘程序,接收用户输入。程序正在编译,但结果不是打印。对我该做什么有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-03 20:03:51

你得让它看起来像这样:

代码语言:javascript
复制
(println (displayFactorials number))

下面是该程序的一个更好的格式化版本:

代码语言:javascript
复制
(ns demo.core)

(defn displayFactorials
  [number]
  (if (> number 1)
    (* number (displayFactorials (- number 1)))))

(defn -main []
  (println "To display the factorials,")
  (print " enter the number: ") (flush)
  (let [number (double (read))]
    (println
      (displayFactorials number))))

提示:如果数字等于1,您也会忘记该做什么。

更新

请看上面的提示。在文件test/tst/demo/core.clj中编写单元测试如下:

代码语言:javascript
复制
(ns tst.demo.core
  (:use demo.core tupelo.test))

(deftest dummy#
  (println :answer (displayFactorials 5)))

尝试运行lein test并查看异常:

代码语言:javascript
复制
ERROR in (dummy#) (Numbers.java:1068)
Uncaught exception, not in assertion.
expected: nil
  actual: java.lang.NullPointerException: null
 at clojure.lang.Numbers.ops (Numbers.java:1068)
    clojure.lang.Numbers.multiply (Numbers.java:173)
    demo.core$displayFactorials.invokeStatic (core.clj:6)
    demo.core$displayFactorials.invoke (core.clj:3)
    demo.core$displayFactorials.invokeStatic (core.clj:6)
    demo.core$displayFactorials.invoke (core.clj:3)
    demo.core$displayFactorials.invokeStatic (core.clj:6)
    demo.core$displayFactorials.invoke (core.clj:3)
    demo.core$displayFactorials.invokeStatic (core.clj:6)
    demo.core$displayFactorials.invoke (core.clj:3)
    tst.demo.core$fn__18527.invokeStatic (core.clj:11)
    tst.demo.core/fn (core.clj:10)

这应该是一个很大的线索,什么是缺了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60514646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档