标签: scheme

由于缺少随机访问数据结构,图像处理等应用程序在Scheme中自然会变慢吗?

方案列表对于随机访问来说很慢,这是许多应用程序(例如图像处理)中的常见操作.这是否会使这种应用自然受到妨碍?

scheme data-structures

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

SICP lisp'if'条件表达式解释

我正在通过SICP工作并参与了关于平方根代码的部分.我理解'if'语句只能跟随单个表达式.但是,在代码中,

(define (sqrt-iter guess x)
    (if (good-enough? guess x)
    guess
    (sqrt-iter (improve guess x)
               x)))
Run Code Online (Sandbox Code Playgroud)

当'guess'和'x'已经被陈述为'if'的结果表达式时,我不明白第3,第4和第5行是如何有效的.

lisp scheme conditional if-statement sicp

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

Scheme Cons(使用#f作为第二个语句)输出

我想知道,如果

(cons (quote (a b c)) #f)
Run Code Online (Sandbox Code Playgroud)

给出一个输出

(( a  b  c ))
Run Code Online (Sandbox Code Playgroud)

那么这给了什么输出:

(cons (quote (a b c)) #t)
Run Code Online (Sandbox Code Playgroud)

谢谢

scheme cons output

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

计划/球拍中是否有功能可用于检查数字是否在数字范围内

方案/球拍中的功能是什么,可用于检查实数是否在给定的数字范围内。

scheme range racket

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

Scheme - 如何返回函数?

这个函数显示正确的东西,但是如何让这个函数的输出成为另一个函数呢?

 ;;generate an Caesar Cipher single word encoders
 ;;INPUT:a number "n"
 ;;OUTPUT:a function, whose input=a word, output=encoded word
 (define encode-n
   (lambda (n);;"n" is the distance, eg. n=3: a->d,b->e,...z->c
     (lambda (w);;"w" is the word to be encoded
       (if (not (equal? (car w) '())) 
           (display (vtc (modulo (+ (ctv (car w)) n) 26)) ))
       (if (not (equal? (cdr w) '())) 
           ((encode-n n)(cdr w))  )     
  )))
Run Code Online (Sandbox Code Playgroud)

scheme

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

Scheme博士的递归

我正在制作一个简单的代码,使用递归来打印列表的元素:

(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()

有办法解决这个问题吗?

谢谢

scheme racket

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

我的高阶程序有什么问题?

我无法弄清楚为什么我的lambda错了.它应该创建一个make-exp.

(define (exp b n)
    (if (n = 0) 
        1
        (* b (exp b (- n 1)))))

(define make-exp (lambda(n) (lambda(b)(exp b n ))))

(define square (make-exp 2))

(square 3)
Run Code Online (Sandbox Code Playgroud)

错误:2不是函数[square,exp,(anon)]

scheme

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

方案 - 在if句中正确使用"和"

我目前正在Scheme中为一个作业编写一个小项目.我没有长时间使用Scheme,所以我对语法不够强.

问题是在if句中使用"和".我有一个日历中的约会列表,但我只想要在一定时间间隔之间的约会.因此,我需要检查开始和结束时间.

我希望实现的内容在C#中看起来像这样:

List<appointment> appointments = new List<appointment>();

    foreach (appointment app in calendar) {
        if(app.getstart() >= from-time && app.getend() <= to-time) {
            appoinments.add(app);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我目前在Scheme中拥有的是:

(define (time-calendar cal from-time to-time)
  (map (lambda (app)(if (> from-time (send 'getstart app)) #t #f))
         (send 'getappointments cal)))
Run Code Online (Sandbox Code Playgroud)

采用日历"cal"和时间间隔(从时间到时间)然后我从cal获得约会(app)并迭代它们.对于每个人,我检查时间是否大于"app"的开始时间.相应地返回true或false.这很有效,但我仍然需要考虑约会是否也在"准时"之前结束.这应该是添加另一个条件的简单问题,但我根本无法使其工作.

任何人都可以帮助我检查第二个变量的正确语法吗?我知道关于Racket文档,但我仍然无法解决我的问题.

我尝试更换cond的if句子.

我也尝试了一些"and"部分的变体,与此类似,但无法正确使用语法:

(define (time-calendar cal from-time to-time)
  (map (lambda (app)(if (and((> from-time (send 'getstart app))) (< to-time (send 'getend app))) #t #f))
         (send 'getappointments cal)))
Run Code Online (Sandbox Code Playgroud)

scheme if-statement conditional-statements racket

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

在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中将两个列表相乘

我使用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是清单.

scheme list racket

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