当前在线人数14298
首页 - 分类讨论区 - 电脑网络 - 葵花宝典版 - 同主题阅读文章

此篇文章共收到打赏
0

  • 10
  • 20
  • 50
  • 100
您目前伪币余额:0
未名交友
[更多]
[更多]
Re: 用Clojure写了一个程序,和python差不多
[版面:葵花宝典][首篇作者:TheMatrix] , 2019年03月08日11:42:35 ,2277次阅读,68次回复
来APP回复,赚取更多伪币 关注本站公众号:
[首页][上页] [下页][末页] [分页:1 2 3 4 ]
TheMatrix
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 21 ]

发信人: TheMatrix (TheMatrix), 信区: Programming
标  题: Re: 用Clojure写了一个程序,和python差不多
发信站: BBS 未名空间站 (Tue Mar 12 14:40:26 2019, 美东)

我把你的grow-paths和all-paths-1改一下,我觉得for list comprehension比较直观
,双循环很容易,用last thread macro双循环好像没那么清楚。

(defn grow-paths [path-coll]
(for [path path-coll pos (valid-moves path)]
(conj path pos)))

(defn all-paths-1 [init-pos]
(nth (iterate grow-paths (list (list init-pos)))
(dec (* dim dim))))

【 在 pseudo (small man) 的大作中提到: 】
: 我前段时间也学了学Clojure,花了些时间好玩。
: 对FP,我的感觉是需要转变思想,把各种运算转换为reduce,apply这类操作。第二是
: ,从总体上思考,尽量往集合上靠。
: 这是我改的一个版本。主要是把所有解用解集的形式表达,同时把递归去掉了。
: (def moves [[1 2] [2 1] [-1 2] [-2 1] [1 -2] [2 -1] [-1 -2] [-2 -1]])
: (def dim 5)
: (defn invalid-pos [[x y]]
:   (or (< x 0) (< y 0) (>= x dim) (>= y dim)))
: (defn valid-moves [path]
:   "Return all next-move positions, nil if none"
: ...................




--
☆ 发自 iPhone 买买提 1.24.09
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 2607:fb90:9828:]

 
TheMatrix
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 22 ]

发信人: TheMatrix (TheMatrix), 信区: Programming
标  题: Re: 用Clojure写了一个程序,和python差不多
发信站: BBS 未名空间站 (Tue Mar 12 23:43:57 2019, 美东)

我这个递归程序的主要问题是:我在递归中实际上只需要一个循环,不需要返回什么,
但是Clojure所有的函数都必须有返回值。我用for list comprehension代替循环,递
归之后整个函数返回的是递归树,一个空树,是递归遍历的所有path,包括不成功的
path。下面这个递归函数的返回值应该是递归树。


(def moves [[1 2] [2 1] [-1 2] [2 -1] [1 -2] [-2 1] [-1 -2] [-2 -1]])
(def dim 5)

(defn possible-pos [path pos]
  (let [seen (set path) in-range (set (range dim))]
    (->> moves
      (map #(map + pos %))
      (filter (fn [[x y]] (and (in-range x) (in-range y))))
      (filter #(not (seen %))))))

(defn jump [path pos]
  (if (= (count path) (* dim dim))
    (do (println path) (list pos))
    (for [npos (possible-pos path pos)]
        (conj (jump (conj path npos) npos) (list pos)))))



【 在 TheMatrix (TheMatrix) 的大作中提到: 】
: 不错。你这个是前锋推进法。
: 我的程序有个毛病:想要的结果我是从println里输出的,但是在repl里面执行还会输
: 出递归函数的结果表达式,是一个巨长的list of list of empty。我还没想清楚这到
: 底是个什么,以及如何把它去掉。



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 50.]

 
pseudo
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 23 ]

发信人: pseudo (small man), 信区: Programming
标  题: Re: 用Clojure写了一个程序,和python差不多
发信站: BBS 未名空间站 (Wed Mar 13 00:26:26 2019, 美东)

在你的例子里,递归函数(jump)的两条线是不对称的。严格说来,每条线的返回值的
类型不一样,所以有你描述的这种情况出现。前面我修改的一个主要方向就是把类型统
一起来。

另外,FP主要考虑值的运算。比如在Python里,大家都考虑print就好。但是,在
Clojure就需要思考如何把这些值收集起来。

【 在 TheMatrix (TheMatrix) 的大作中提到: 】
: 我这个递归程序的主要问题是:我在递归中实际上只需要一个循环,不需要返回什么,
: 但是Clojure所有的函数都必须有返回值。我用for list comprehension代替循环,递
: 归之后整个函数返回的是递归树,一个空树,是递归遍历的所有path,包括不成功的
: path。下面这个递归函数的返回值应该是递归树。
: (def moves [[1 2] [2 1] [-1 2] [2 -1] [1 -2] [-2 1] [-1 -2] [-2 -1]])
: (def dim 5)
: (defn possible-pos [path pos]
:   (let [seen (set path) in-range (set (range dim))]
:     (->> moves
:       (map #(map + pos %))
: ...................



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 2600:1700:d090:]

 
TheMatrix
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 24 ]

发信人: TheMatrix (TheMatrix), 信区: Programming
标  题: Re: 用Clojure写了一个程序,和python差不多
发信站: BBS 未名空间站 (Wed Mar 13 07:54:24 2019, 美东)

对,是这样的。那能不能写出既是递归又返回值“正确”的程序?

【 在 pseudo (small man) 的大作中提到: 】
: 在你的例子里,递归函数(jump)的两条线是不对称的。严格说来,每条线的返回值的
: 类型不一样,所以有你描述的这种情况出现。前面我修改的一个主要方向就是把类型统
: 一起来。
: 另外,FP主要考虑值的运算。比如在Python里,大家都考虑print就好。但是,在
: Clojure就需要思考如何把这些值收集起来。




--
☆ 发自 iPhone 买买提 1.24.09
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 50.]

 
rgg
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 25 ]

发信人: rgg (rgg), 信区: Programming
标  题: Re: 用Clojure写了一个程序,和python差不多
发信站: BBS 未名空间站 (Wed Mar 13 10:08:54 2019, 美东)

clojure和python 比速度如何?

【 在 TheMatrix (TheMatrix) 的大作中提到: 】
: 在学习Clojure。写了一个简单递归程序,跳马问题。马在5X5的棋盘上,初始位置在
(0
: ,0),马走日,要遍历棋盘,还不能走已经走过的位置。列出所有的遍历方式。
: 写了个Clojure,又写了个python,发现这两个可以写的几户一样。我觉得
JavaScript
: 也可以写成这个样子。
: 我觉得从可读性来看程序结构这方面,python应该算最好的了。其他语言写法上可以往
: python上靠。



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 65.]

 
TheMatrix
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 26 ]

发信人: TheMatrix (TheMatrix), 信区: Programming
标  题: Re: 用Clojure写了一个程序,和python差不多
发信站: BBS 未名空间站 (Wed Mar 13 10:28:50 2019, 美东)

这个问题好。我先说说这个程序的感受,全面的还得听老司机的。

我觉得不比python快,似乎还慢点。我最开始程序performance有问题,是因为没有用
let把一些值提出来,所以比较慢,比python慢不少。后来用let把值提出来之后快了,
但是也就跟python差不多吧。

我觉得这个道理可能跟python是一样的,都应该算是一种glue语言。

【 在 rgg (rgg) 的大作中提到: 】
: clojure和python 比速度如何?
: (0
: JavaScript




--
☆ 发自 iPhone 买买提 1.24.09
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 50.]

 
nacst23
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 27 ]

发信人: nacst23 (cnc), 信区: Programming
标  题: Re: 用Clojure写了一个程序,和python差不多
发信站: BBS 未名空间站 (Wed Mar 13 12:12:28 2019, 美东)

? clojure should be in the same level as java ,   why as slow as python?

【 在 TheMatrix (TheMatrix) 的大作中提到: 】
: 这个问题好。我先说说这个程序的感受,全面的还得听老司机的。
: 我觉得不比python快,似乎还慢点。我最开始程序performance有问题,是因为没有用
: let把一些值提出来,所以比较慢,比python慢不少。后来用let把值提出来之后快了,
: 但是也就跟python差不多吧。
: 我觉得这个道理可能跟python是一样的,都应该算是一种glue语言。



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 199.]

 
hci
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 28 ]

发信人: hci (海螺子), 信区: Programming
标  题: Re: 用Clojure写了一个程序,和python差不多
发信站: BBS 未名空间站 (Wed Mar 13 15:49:17 2019, 美东)


(def moves [[1 2] [2 1] [-1 2] [-2 1] [1 -2] [2 -1] [-1 -2] [-2 -1]])

(def dim 5)

(defn- step [pos move]
  (map + pos move))

(defn- valid-pos? [[x y]]
  (and (< x dim) (< y dim) (<= 0 x) (<= 0 y)))

(defn- grow* [path]
  (let [seen (set path)]
    (->> path
        first
        (#(map (partial step %) moves))
        (filter valid-pos?)
        (filter (complement seen))
        (map #(cons % path)))))

(defn- grow [paths]
  (mapcat grow* paths))

(defn all-paths [init-paths]
  (->> (iterate grow init-paths)
       (take (* dim dim))
       last
       (map reverse)))

(all-paths [[[0 0]]])


【 在 TheMatrix (TheMatrix) 的大作中提到: 】
: 我这个递归程序的主要问题是:我在递归中实际上只需要一个循环,不需要返回什么,
: 但是Clojure所有的函数都必须有返回值。我用for list comprehension代替循环,递
: 归之后整个函数返回的是递归树,一个空树,是递归遍历的所有path,包括不成功的
: path。下面这个递归函数的返回值应该是递归树。
: (def moves [[1 2] [2 1] [-1 2] [2 -1] [1 -2] [-2 1] [-1 -2] [-2 -1]])
: (def dim 5)
: (defn possible-pos [path pos]
:   (let [seen (set path) in-range (set (range dim))]
:     (->> moves
:       (map #(map + pos %))
: ...................



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 12.]

 
hci
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 29 ]

发信人: hci (海螺子), 信区: Programming
标  题: Re: 用Clojure写了一个程序,和python差不多
发信站: BBS 未名空间站 (Wed Mar 13 15:53:02 2019, 美东)

Idiomatic Clojure will be around 2x of Java.

With simple optimizations (type hints, use transcient, etc.), it can be
close to Java, about 1.1x or 1.2x

With extreme optimization, will be the same as Java.

【 在 TheMatrix (TheMatrix) 的大作中提到: 】
: 这个问题好。我先说说这个程序的感受,全面的还得听老司机的。
: 我觉得不比python快,似乎还慢点。我最开始程序performance有问题,是因为没有用
: let把一些值提出来,所以比较慢,比python慢不少。后来用let把值提出来之后快了,
: 但是也就跟python差不多吧。
: 我觉得这个道理可能跟python是一样的,都应该算是一种glue语言。



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 12.]

 
hci
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 30 ]

发信人: hci (海螺子), 信区: Programming
标  题: Re: 用Clojure写了一个程序,和python差不多
发信站: BBS 未名空间站 (Wed Mar 13 16:35:38 2019, 美东)

可以用一个atom来接收返回值,(def result (atom [])),在你print的地方不print,
而是(swap! result conj path)

Clojure 是实用的语言,想要用变量的地方,用个atom就行了,只要不滥用,还是FP

【 在 TheMatrix (TheMatrix) 的大作中提到: 】
: 对,是这样的。那能不能写出既是递归又返回值“正确”的程序?




--
※ 修改:·hci 於 Mar 13 16:38:14 2019 修改本文·[FROM: 12.]
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 12.]

 
TheMatrix
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 31 ]

发信人: TheMatrix (TheMatrix), 信区: Programming
标  题: Re: 用Clojure写了一个程序,和python差不多
发信站: BBS 未名空间站 (Wed Mar 13 17:24:23 2019, 美东)

我在我电脑上试了一下,python递归程序31秒完成,Clojure递归程序,69秒完成。
Clojure非递归程序,就是前面那个ID给出的程序,60完成。

【 在 nacst23 (cnc) 的大作中提到: 】
: ? clojure should be in the same level as java ,   why as slow as python?




--
☆ 发自 iPhone 买买提 1.24.09
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 2607:fb90:9828:]

 
TheMatrix
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 32 ]

发信人: TheMatrix (TheMatrix), 信区: Programming
标  题: Re: 用Clojure写了一个程序,和python差不多
发信站: BBS 未名空间站 (Wed Mar 13 17:34:32 2019, 美东)

你这个也不是递归。在我机器上65秒。

【 在 hci (海螺子) 的大作中提到: 】
: (def moves [[1 2] [2 1] [-1 2] [-2 1] [1 -2] [2 -1] [-1 -2] [-2 -1]])
: (def dim 5)
: (defn- step [pos move]
:   (map + pos move))
: (defn- valid-pos? [[x y]]
:   (and (< x dim) (< y dim) (<= 0 x) (<= 0 y)))
: (defn- grow* [path]
:   (let [seen (set path)]
:     (->> path
:         first
: ...................




--
☆ 发自 iPhone 买买提 1.24.09
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 2607:fb90:9828:]

 
hci
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 33 ]

发信人: hci (海螺子), 信区: Programming
标  题: Re: 用Clojure写了一个程序,和python差不多
发信站: BBS 未名空间站 (Wed Mar 13 17:34:58 2019, 美东)

秒?

你怎么计时的。从什么时候开始算?

【 在 TheMatrix (TheMatrix) 的大作中提到: 】
: 我在我电脑上试了一下,python递归程序31秒完成,Clojure递归程序,69秒完成。
: Clojure非递归程序,就是前面那个ID给出的程序,60完成。





--
※ 修改:·hci 於 Mar 13 17:40:56 2019 修改本文·[FROM: 12.]
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 12.]

 
hci
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 34 ]

发信人: hci (海螺子), 信区: Programming
标  题: Re: 用Clojure写了一个程序,和python差不多
发信站: BBS 未名空间站 (Wed Mar 13 17:55:56 2019, 美东)


(defn possible-pos [path pos]
  (let [seen (set path) in-range (set (range dim))]
    (->> moves
         (map #(map + pos %))
         (filter (fn [[x y]] (and (in-range x) (in-range y))))
         (filter #(not (seen %))))))


(def result (atom []))

(defn jump [path pos]
  (if (= (count path) (* dim dim))
    (swap! result conj path)
    (for [npos (possible-pos path pos)]
      (conj (jump (conj path npos) npos) (list pos)))))

(time (do (jump [[0 0]] [0 0])
          (println @result)))

"Elapsed time: 66.223415 msecs"

你的递归算法包括打印,只要60毫秒左右。

【 在 hci (海螺子) 的大作中提到: 】
: 秒?
: 你怎么计时的。从什么时候开始算?




--
※ 修改:·hci 於 Mar 13 17:56:38 2019 修改本文·[FROM: 12.]
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 12.]

 
hci
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 35 ]

发信人: hci (海螺子), 信区: Programming
标  题: Re: 用Clojure写了一个程序,和python差不多
发信站: BBS 未名空间站 (Wed Mar 13 18:02:52 2019, 美东)

你不是从command line 开始算时间的吧?用了lein?

那你其实在测JVM启动,然后Clojure启动,然后lein启动,然后再算。这个就没法说了
。JVM Clojure不是用在命令行的,用来做是长期运行的服务器程序的。

写命令行脚本用ClojureScript, 比如planck, lumo这些,都是立即启动的。

但ClojureScript的运行起来之后其实比Clojure运行起来慢一个数量级。

【 在 hci (海螺子) 的大作中提到: 】
: 秒?
: 你怎么计时的。从什么时候开始算?



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 12.]

 
TheMatrix
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 36 ]

发信人: TheMatrix (TheMatrix), 信区: Programming
标  题: Re: 用Clojure写了一个程序,和python差不多
发信站: BBS 未名空间站 (Wed Mar 13 19:32:41 2019, 美东)

哦。我是用的nrepl,然后输入时间函数,在输入输入运行函数,出结果之后再输入时
间函数,然后算时间差。

我知道有time函数,用了一下,几乎立刻就返回了,结果还没出来,我想这不可能啊。
因为递归程序从结果的输出来看,它不是匀速的,这表明它内部是在计算吧,速度应该
没那么快吧。

【 在 hci (海螺子) 的大作中提到: 】
: 你不是从command line 开始算时间的吧?用了lein?
: 那你其实在测JVM启动,然后Clojure启动,然后lein启动,然后再算。这个就没法说了
: 。JVM Clojure不是用在命令行的,用来做是长期运行的服务器程序的。
: 写命令行脚本用ClojureScript, 比如planck, lumo这些,都是立即启动的。
: 但ClojureScript的运行起来之后其实比Clojure运行起来慢一个数量级。




--
☆ 发自 iPhone 买买提 1.24.09
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 50.]

 
TheMatrix
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 37 ]

发信人: TheMatrix (TheMatrix), 信区: Programming
标  题: Re: 用Clojure写了一个程序,和python差不多
发信站: BBS 未名空间站 (Wed Mar 13 19:35:19 2019, 美东)

哦。那为什么在打印输出的时候,输出速度并不匀速,如果是早算完了,那输出应该匀
速啊。

【 在 hci (海螺子) 的大作中提到: 】
: (defn possible-pos [path pos]
:   (let [seen (set path) in-range (set (range dim))]
:     (->> moves
:          (map #(map + pos %))
:          (filter (fn [[x y]] (and (in-range x) (in-range y))))
:          (filter #(not (seen %))))))
: (def result (atom []))
: (defn jump [path pos]
:   (if (= (count path) (* dim dim))
:     (swap! result conj path)
: ...................




--
☆ 发自 iPhone 买买提 1.24.09
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 50.]

 
hci
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 38 ]

发信人: hci (海螺子), 信区: Programming
标  题: Re: 用Clojure写了一个程序,和python差不多
发信站: BBS 未名空间站 (Wed Mar 13 20:35:34 2019, 美东)

你其实在测打印速度,这是非常慢的。nrepl更慢,nrepl是什么?网络repl,这都走了
一大套网络,parsing之类的东西了。

Clojure程序用这个来测试速度:https://github.com/hugoduncan/criterium

(ns test.knight
  (:require [criterium.core :as time]))

;; hci's version, made sure all lazy-seq are realized
(time/quick-bench
  (doseq [l (all-paths [[[0 0]]])]
                    (doall l)))

Evaluation count : 36678 in 6 samples of 6113 calls.
             Execution time mean : 16.858250 μs
    Execution time std-deviation : 348.436265 ns
   Execution time lower quantile : 16.558016 μs ( 2.5%)
   Execution time upper quantile : 17.266448 μs (97.5%)
                   Overhead used : 9.922257 ns




【 在 TheMatrix (TheMatrix) 的大作中提到: 】
: 哦。我是用的nrepl,然后输入时间函数,在输入输入运行函数,出结果之后再输入时
: 间函数,然后算时间差。
: 我知道有time函数,用了一下,几乎立刻就返回了,结果还没出来,我想这不可能啊。
: 因为递归程序从结果的输出来看,它不是匀速的,这表明它内部是在计算吧,速度应该
: 没那么快吧。



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 12.]

 
hci
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 39 ]

发信人: hci (海螺子), 信区: Programming
标  题: Re: 用Clojure写了一个程序,和python差不多
发信站: BBS 未名空间站 (Wed Mar 13 20:37:16 2019, 美东)

对啊,打印是很慢的,所以不均匀啊。

Clojure都是lazy-seq, 你不打,它都不会算。

【 在 TheMatrix (TheMatrix) 的大作中提到: 】
: 哦。那为什么在打印输出的时候,输出速度并不匀速,如果是早算完了,那输出应该匀
: 速啊。



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 12.]

 
hci
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 40 ]

发信人: hci (海螺子), 信区: Programming
标  题: Re: 用Clojure写了一个程序,和python差不多
发信站: BBS 未名空间站 (Wed Mar 13 20:40:10 2019, 美东)

这点计算,是1毫秒以内就完成的,所以你打印没有意义。

要么你把dim搞大一些,要么就不要打印。

【 在 TheMatrix (TheMatrix) 的大作中提到: 】
: 哦。我是用的nrepl,然后输入时间函数,在输入输入运行函数,出结果之后再输入时
: 间函数,然后算时间差。
: 我知道有time函数,用了一下,几乎立刻就返回了,结果还没出来,我想这不可能啊。
: 因为递归程序从结果的输出来看,它不是匀速的,这表明它内部是在计算吧,速度应该
: 没那么快吧。



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 12.]

[首页][上页] [下页][末页] [分页:1 2 3 4 ]
[快速返回] [ 进入葵花宝典讨论区] [返回顶部]
回复文章
标题:
内 容:

未名交友
将您的链接放在这儿

友情链接


 

Site Map - Contact Us - Terms and Conditions - Privacy Policy

版权所有,未名空间(mitbbs.com),since 1996