标签: scheme

学习什么Scheme vs Lisp

方案与 Lisp ? 要学什么,我需要函数式编程语言。

lisp scheme clisp common-lisp

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

生成素数时“应用程序:不是程序”

我正在尝试输出前 100 个素数并不断收到错误消息:

应用程序:不是程序;期望一个可以应用于给定参数的过程:(#) arguments...:[none]

错误显示在我的 take$ 程序中:

(if (or (= m 0) (null? st))
      '()
      (cons (car st) (take$ (- m 1) ((cdr st)))))))
Run Code Online (Sandbox Code Playgroud)

这是我所有的代码:

(define int-builder$
    (lambda (x)
       (list x (lambda () (int-builder$ (+ 1 x ))))))

(define take$
    (lambda (m st)
       (if (or (= m 0) (null? st))
           '()
           (cons (car st) (take$ (- m 1) ((cdr st)))))))

(define filter-out-mults$
   (lambda (num  st)
     (cond
     (( = (remainder (car st) num) 0) 
         (filter-out-mults$ num ((cadr st))))
         (else 
            (list …
Run Code Online (Sandbox Code Playgroud)

scheme primes sieve lazy-sequences non-procedure-application

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

简单计划第 09 章。Lambda。还有更多的 Lambda 练习吗?

问候,

阅读Simply Scheme Chapter 09 就我所见,Lambda 似乎很重要。我想把它练到骨子里,所以我正在寻找针对lambda 的Project Euler 的初学者练习(最好是非递归的)。让包容是奖金。有资源吗?

在网上,我找到了这个和对Simply Scheme 的引用。我知道有好书,但我真的只是在寻找练习。

非常感谢。

lisp lambda scheme functional-programming

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

Scheme如何在if条件中定义var

我是 Scheme 编程的新手,并试图在 if 条件中定义一个 var。例如,我有:

(if (< x y) (define x y) ) ;(GOAL: if x < y, than x=y..)
Run Code Online (Sandbox Code Playgroud)

但我得到了错误:

let: bad syntax (not an identifier and expression for a binding) in:...
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决这个问题,将不胜感激。

ps对不起我的英语

scheme racket

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

在嵌套列表中查找元素?(方案)

我正在尝试编写一个非常简单的过程来检查任意值是否是嵌套列表的元素。例如,如果列表是 this (8 (4 (3 () ()) (2 () ())) (5 (13 () ()) (28 () ())))),我们要检查数字6是否是该列表的一部分,如果不是,则返回 #f,如果是,则返回 #t,我们将如何做?我们不能简单地 cdr 向下列表,因为我们只会检索下一个列表,而不是下一个列表中的元素。我可能正在考虑使用过滤器,但不确定这是否是该过程的最佳方向。

scheme list

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

letrec、Scheme 的混淆

我正在努力区分 let、letrec、let* 之间的区别......因为scheme不是我的主要编程语言,我的记忆已经存在很长时间了..我有这个功能..现在我在这里对letrec感到非常困惑..这又是递归。我可以理解……但在这段代码中无法建立足够的连接……(可能仍然对递归感到困惑)有人可以解释为什么这里需要 letrec

(define myFunc
  (lambda (start end res func)
    (letrec ((func:rec_func
              (lambda (x i y)
                (if (>= i start)
                    (func:rec_func (cons i x) (- i res) (cons (func i) y))  ;; line6
                    (cons x (cons y '()))))))                               ;; line7
      (func:rec_func '() end '()))))
Run Code Online (Sandbox Code Playgroud)

(已编辑)我所理解的尾递归

-> [Q1] 它是尾递归吗?

-> [Q2] 那么,是否应该始终使用 letrec 进行尾递归?

此函数返回 x、y 的列表,边界为 start、end,因此它检查索引 i 是否在边界内,如果是,则执行第 6 行

-> [Q3]那么,第 6 行是什么?我无法得到 line6

scheme letrec

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

方案列表可以包含的最大元素数是多少?

我正在使用Chicken Scheme,我想知道列表中可以有多少元素.

scheme chicken-scheme

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

有人可以解释一下:(+ 2(if(> ba)ba))?

开始完成计算机程序的结构和解释练习,我在第一组练习中坚持这一点.

a=3
b=4
(+ 2 (if (> b a) b a))
Run Code Online (Sandbox Code Playgroud)

我已经找到了答案:6但是,我自己一直在努力,我无法弄清楚如何获得这个数字.

谁能解释一下?

lisp scheme

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

方案/球拍中最大的整数值是多少?

我试图找出方案中最大的int值到底是多少?例如,在Java中,最大的有符号整数为2 ^ 31-1。

如何在方案中获取此值(最大的int值)

scheme racket

0
推荐指数
2
解决办法
216
查看次数

为什么递归函数中的计数总是需要两个参数?

我用递归和循环宏编写了一些简单的循环,但令我困扰的是,递增计数需要两个参数,递减计数不需要。

是否存在示例?

这个问题的开始只是如何打印递增的内容。我的第一个功能是“ printsomestuff”。

(defun printsomestuff (stuff times) 
  (if (= times 0)
      'im-the-return-value
      (progn 
        (print stuff)
        (printsomestuff stuff (1- times)))))

(defun counting-down (topnumber)
  (if (= topnumber 0)
      'done
      (progn 
        (print topnumber)
        (counting (- topnumber 1)))))


(defun loopcounting (uptonumber)
  (loop for i from 1 to uptonumber
    do (print i)))

(defun recurcounting-up (uptonumber)
  (let ((incrementer 0))
    (if  
     (= incrementer uptonumber)
     'done
     (progn 
       (print incrementer)
       (recurcounting-up (+ incrementer 1))))))

(defun recur-counting-up-two (uptonumber startnumber)
  (if (> startnumber uptonumber)
      'done
      (progn
        (print startnumber)
        (recur-counting-up-two uptonumber …
Run Code Online (Sandbox Code Playgroud)

lisp recursion scheme

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