`
simohayha
  • 浏览: 1389396 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

SICP使用DRscheme遇到的问题

    博客分类:
  • FP
F# 
阅读更多
SICP Exercise 1.22 

(define (timed-prime-test n) 
  (newline) 
  (display n) 
  (start-prime-test n (runtime))) 

(define (start-prime-test n start-time) 
  (if (prime? n) 
      (report-prime (- (runtime) start-time)))) 

(define (report-prime elapsed-time) 
  (display " *** ") 
  (display elapsed-time))

这边使用 Drscheme时,会出错,显示没有runtime过程。

解决方法是 选择语言 PLT-MZscheme 然后将程序改为下面的:
(define (timed-prime-test n) 
  (newline) 
  (display n) 
  (start-prime-test n (current-milliseconds))) 

(define (start-prime-test n start-time) 
  (if (prime? n) 
      (report-prime (- (current-milliseconds) start-time)))) 

(define (report-prime elapsed-time) 
  (display " *** ") 
  (display elapsed-time)
   (display " ms "))
(timed-prime-test 100000000057)


那么这道题就是这么写了:
(define (f start count)   
    (cond ((= 0 count)   
           (newline)   
           (display "***** FINISHED *****")   
           (newline))   
          ((timed-prime-test start) (f (+ 2 start) (- count 1)))   
          (else (f (+ 2 start) count))))   
(define (search-for-primes a)   
   (f (+ a 1) 3)) 
(search-for-primes 1000)
分享到:
评论
3 楼 frenchmay 2009-06-22  
simohayha 写道
frenchmay 写道
我使用DrScheme 4.2,也遇到了相同的问题。不过你之前的方法好像无法解决。


应该可以吧。。我当时就是这么解决的。。不过话说sicp快1年没摸过了。。

我的这个版本中没有PLT-MZscheme这个语言选项,导致后续联系的运行分析都无法进行。
2 楼 simohayha 2009-06-22  
frenchmay 写道
我使用DrScheme 4.2,也遇到了相同的问题。不过你之前的方法好像无法解决。


应该可以吧。。我当时就是这么解决的。。不过话说sicp快1年没摸过了。。
1 楼 frenchmay 2009-06-22  
我使用DrScheme 4.2,也遇到了相同的问题。不过你之前的方法好像无法解决。

相关推荐

Global site tag (gtag.js) - Google Analytics