标签: racket

做任何一个使用Dr方案编程?如何使用列表排序?

用于在dr方案中对n个数字进行排序的数据结构我不允许使用向量和结构..如果我使用列表我无法编辑列表值.所以我如何排序n个数字.我使用的语言是文本mzscheme rsr5

scheme racket

0
推荐指数
1
解决办法
8677
查看次数

如何编写从列表中随机选择一对的过程?

我正在创建一个跳棋游戏,我需要一个程序,从一对列表中随机选择一对.

random scheme list racket

0
推荐指数
1
解决办法
2353
查看次数

是否继续记录PC并注册状态?

目前,当我正在尝试功能语言的延续时,我的理解是继续记录当前程序计数器和寄存器文件,当返回延续时,PC和注册文件将恢复为它记录的值.

所以在Might博客文章中的以下愚蠢的例子中,

; right-now : -> moment
(define (right-now)
  (call-with-current-continuation 
   (lambda (cc) 
     (cc cc))))

; go-when : moment -> ...
(define (go-when then)
  (then then))  


; An infinite loop:
(let ((the-beginning (right-now)))
  (display "Hello, world!")
  (newline)
  (go-when the-beginning))  ; here the-beginning continuation passed to go-when, which ultimately will have an continuation applied to an continuation, that returns a continuation, which will cause the the program point resumed to the PC and registers states recorded in it.
Run Code Online (Sandbox Code Playgroud)

我不确定我的理解是对的..如果你认为不是,请纠正我.....

scheme continuations functional-programming racket

0
推荐指数
1
解决办法
192
查看次数

什么$后跟一个数字(例如1美元,3美元)的计划呢?

我正在分析代码,我看到了这一点

[(exp + exp) (+ $1 $3)]
Run Code Online (Sandbox Code Playgroud)

现在我想知道这是做什么的?是否需要该列表的第一个和第三个元素?那个设置在左侧甚至被认为是一个列表?我正在学习这门语言,但我已经度过了非常艰难的时光,所以你们一直都是最好的帮助.谢谢!

scheme racket

0
推荐指数
1
解决办法
357
查看次数

如何在Racket中改进这种辅助功能?

我正在使用BSL语言在HtDP,第4章中工作.

我正在处理的问题是:

练习136:如果你运行main,按空格键(开枪),等待很长时间,镜头从画布上消失.但是,当您关闭世界画布时,结果是一个仍包含此隐形镜头的世界.

设计一个替代的tock函数,它不仅可以每个时钟刻度移动一个像素,还可以消除那些坐标位于画布上方的像素.提示:您可能希望考虑为递归cond子句设计辅助函数.

我想出的解决方案如下(在剧透中).但是,我觉得我在做一些多余的事情.基本上我的辅助功能的应用不太正确.

(define (main w0)
  (big-bang w0
            (on-tick ticking)
            (on-key fire-key)
            (to-draw to-render)))

(define HEIGHT 100)
(define WIDTH 80)
(define TURRET-X-POS (/ WIDTH 2))
(define BKGRND (empty-scene WIDTH HEIGHT))
(define SHOT-IMG (triangle 4 "solid" "red"))

(define (to-render w0)
  (cond
    [(empty? w0) BKGRND]
    [else (place-image SHOT-IMG TURRET-X-POS (first w0) (to-render (rest w0)))]))

(define (fire-key w0 ke)
  (cond
    [(key=? ke " ") (cons HEIGHT w0)]
    [else w0]))

(define (ticking w0)
  (cond
   [(empty? w0) empty]
   [(empty? (only-inbound-shots w0)) empty]
   [else …
Run Code Online (Sandbox Code Playgroud)

scheme racket

0
推荐指数
1
解决办法
550
查看次数

相当于SRFI 42:在Racket的理解中

SRFI 42中的急切理解可以有一个:while在某些条件成立时运行生成器的子句,例如:(list-ec (:while (:range i 10) (< (* i i) 50)) i)返回列表(0 1 2 3 4 5 6 7)(并停止 7处的迭代,不像是if,如(list-ec (:range i 10) (if (< (* i i) 50)) i)将继续运行,但不会产生更多值).

在拍,我一般喜欢使用原生forfor/list,但他们似乎并不具备这样的内置.什么是:while在Racket中模拟的最佳方式for

scheme list-comprehension racket

0
推荐指数
1
解决办法
168
查看次数

这个函数是Tail-Recursive吗?方案

以下函数是尾递归的吗?如果没有,我可以做些什么来修改它?

(define (euclids-alg n1 n2)
 (cond((= n1 0) n2)
      ((= n2 0) n1)
      ((= n1 n2) n1)
      ((> n1 n2) (euclids-alg (- n1 n2) n2))
      ((< n1 n2) (euclids-alg n1 (- n2 n1))))) 
Run Code Online (Sandbox Code Playgroud)

recursion scheme tail-recursion racket

0
推荐指数
1
解决办法
124
查看次数

从列表中删除整数

我有一个奇怪的问题,几个小时无法在Scheme中实现.假设我们有:

(define x '( (Orlando (NY 3))
             (Chicago (Montana 5) (Orlando 8))
             ...and so on ...
           )
Run Code Online (Sandbox Code Playgroud)

我想把它改造成

'( (Orlando NY)
   (Chicago Montana Orlando)
    ...and so on ...
 )
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

lisp scheme list racket

0
推荐指数
1
解决办法
84
查看次数

在Racket中if-then-else的语法

我对Racket有疑问.

(我正在使用http://docs.racket-lang.org/guide/conditionals.html上的教程)

我试着编写一个执行此操作的函数:如果x小于4,则应该增加1,否则应该乘以2.

(define (number x)
  (if (< x 4) 'x+1 'x*2))
Run Code Online (Sandbox Code Playgroud)

所以我在DrRacket上编译它,但它没有做任何事情.该(if (< x 5) 'x+1 'x*2))-Part被标记为黑色!我认为问题就在'于此.

syntax scheme racket

0
推荐指数
1
解决办法
1123
查看次数

球拍相交两个列表

我正在尝试将Racket上的两个列表相交,但是以下代码不起作用:

(define (intersection a b)
  (if (null? a)
    '()
    (if (contains (car a) b)
      (cond (car a)(intersection (cdr a) b))
      (intersection (cdr a) b))))
Run Code Online (Sandbox Code Playgroud)

结果总是以列表b中包含的列表a的第一项加上列表a的其余部分结束。例如:

a = '(1 2 3 4 5 6)
b = '( 10 20 4 30 33)
Run Code Online (Sandbox Code Playgroud)

将返回:

'(4 5 6)
Run Code Online (Sandbox Code Playgroud)

我确定包含内容正确运行,因此错误必须出在我发布的代码中。谢谢!

scheme list racket

0
推荐指数
1
解决办法
4541
查看次数