我正在尝试实现立方根的牛顿法,但我的函数似乎挂起。我的代码与书中显示的平方根代码几乎相同,并根据improve需要修改了函数。
这是我的代码...
(define (cube-root x)
(cube-root-iter 1.0 x))
(define (cube-root-iter guess x)
(if (good-enough? guess x)
guess
(cube-root-iter (improve x guess) x)
)
)
(define (good-enough? guess x)
(< (abs (- (* guess guess) x)) 0.001))
(define (improve x guess)
(/ (+ (/ x (* guess guess)) (* 2 guess)) 3)
)
Run Code Online (Sandbox Code Playgroud)
我进行了独立测试improve,good-enough?他们似乎给出了正确的答案。有人知道为什么我的代码不终止吗?
我在 Racket 中对sicp包进行此操作,以防产生任何影响。
我想在Dr.Scheme中提出以下声明:
{with {x {+ 5 5}} {+ xx}}
但是我收到一个错误:
expand:模块中的未绑定标识符:with
有谁可以帮助我?谢谢.
我知道gensym可以生成符号,但似乎有一个基数的全局计数器,它可能非常大,例如,(define s (gensym 's))s可以最终得到s12345.我想知道是否有办法重置计数器,生成的数字可能很小?喜欢s14?
我的列表抓取用户输入,并创建一个列表 - 此列表以字符为单位.
我想能够检查是否(car myList)是一个性格像#\1或者#\2,然后更改名单的车进1或2.
我正在使用DrRacket.
到目前为止,这个问题一直试图打电话给(set! (car myList) 1)或(list-set! (car myList) 1 )
两者都是我环境中未定义的引用.
我刚刚开始参与计划,参加大学任务.
如果有人有时间,任何帮助将不胜感激
谢谢
好的,我正在大学上学这门课程,我们刚刚完成了第一次任务.我遇到了这个奇怪的事情.有时程序会冻结,绝对不做任何事情而不给我任何形式的警告,为什么这是......
采取以下程序:
(define (calc-week-day y1 m d w y2) ; anta y2 > y1
(define (days-between-months m1 m2 y)
(if (= m1 m2)
0
(+ (month-length y m1) (days-between-months (+ m1 1) m2 y))))
(define (days-between-years y1 y2)
(if (= y1 y2)
0
(+ (year-length y1) (days-between-years (+ y1 1) y2))))
(define (days-til-months-end d m y)
(- (month-length y m) d))
(define (calculate-day day offset)
(cond ((> day 6) (calculate-day 0 (- offset 1)))
((= offset 0) day)
(else (calculate-day …Run Code Online (Sandbox Code Playgroud) 我有一个字符串列表kumo.我打印三个字符串.我在三条线上得到它们.我希望它们在一行上用空格分隔.我使用以下代码:
(display (first kumo))
(display (fourth kumo))
(display (second kumo))
Run Code Online (Sandbox Code Playgroud)
要么
(printf "~a~a~a" (first kumo)(fourth kumo)(second kumo))
Run Code Online (Sandbox Code Playgroud) 我想用球拍删除文件.我正在使用以下代码.
(delete-file c://foo.txt)
Run Code Online (Sandbox Code Playgroud)
我收到了这条消息.
reference to an identifier before its definition:
c://foo.txt
Run Code Online (Sandbox Code Playgroud) 方案/球拍中的功能是什么,可用于检查实数是否在给定的数字范围内。
我正在制作一个简单的代码,使用递归来打印列表的元素:
(define (printList list)
(if (empty? list)
'()
(begin
(display (car list))
(printList (cdr list)))))
Run Code Online (Sandbox Code Playgroud)
它确实有效,但我想知道是否有一种不打印空列表的方法.当我用(printList'(1 2 3 4))运行我的程序时,我得到了:
1 2 3 4()
有办法解决这个问题吗?
谢谢
我使用Racket以相同的长度乘以列表.到目前为止,我尝试过:
(define (multiply-list a b)
(if ([(empty? a) (empty)])
else (cons(*car(a)car(b)))
cdr(a) cdr(b)))
Run Code Online (Sandbox Code Playgroud)
我无法理解Racket的语法.我想更新列表cdr.但我不能把它弄清楚a并且b是清单.