标签: scheme

方案 Zip 功能

我需要在Scheme中编写一个充当拉链的函数 - 这意味着它需要两个列表并从两个列表中创建一个“拉链”,这样

(zip '(a b c) '(1 2 3)) => ((a 1) (b 2) (c 3))
Run Code Online (Sandbox Code Playgroud)

此外,它获取第 n 个位置的每个元素并将它们配对在一起。

我对计划相当陌生,所以任何帮助将不胜感激!谢谢!

scheme list zipper

-1
推荐指数
1
解决办法
2137
查看次数

方案 - 应用程序:不是程序错误

我正在用方案编码一个函数,但我收到一个“应用程序:不是过程;期望一个可以应用于参数的过程”错误。我假设我没有正确使用条件语句:

(define find-allocations
  (lambda (n l)
    (if (null? l)
        '()
        (cons ((if (<=(get-property (car l) 'capacity) n)
               (cons (car l) (find-allocations (- n (get-property (car l) 'capacity)) (cdr l)))
               '()))
          (if (<=(get-property (car l) 'capacity) n)
              (cons (car l) (find-allocations (n (cdr l))))
              '())))))
Run Code Online (Sandbox Code Playgroud)

如果有人能指出我的错误,将不胜感激。

scheme racket non-procedure-application

-1
推荐指数
1
解决办法
396
查看次数

球拍方案集 - 减法问题?

我想在Racket中使用set-subtract运算符.我遇到了一些我不理解的事情.如果我有以下代码:

(set-member? (set "NDT_NT\\stuff") "NDC_NT\\stuff")
Run Code Online (Sandbox Code Playgroud)

我不应该得到这个答案吗?

#t
Run Code Online (Sandbox Code Playgroud)

我正进入(状态:

#f
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

scheme racket

-1
推荐指数
1
解决办法
73
查看次数

从Scheme中的交集列表中删除重复项

我有一段代码可以得到两个列表的交集.但是,我想删除列表中的所有重复项.我用的是这个功能remove-duplicates().每当我使用它时,drRacket会出现以下错误.

申请:不是程序; 期望一个程序可以应用于给定的参数:(abccd)参数......:[无]

这是我的代码

#lang scheme
(define (intersect lst1 lst2)
  (removedup(lst1 lst2))
    (cond
      ((null? lst1)(quote ()))
      ((isin? (car lst1) lst2)
       (cons (car lst1)
             (intersect (cdr lst1) lst2)))
      (else (intersect (cdr lst1) lst2))))

(define (removedup lst1 lst2)
  (remove-duplicates(lst1))
  (remove-duplicates(lst2))
  )

(define (isin? a lat)
    (cond
      ((null? lat) #f)
      (else (or (equal? (car lat) a)
                (isin? a (cdr lat))))))
Run Code Online (Sandbox Code Playgroud)

我的意见是 > (intersect '(a b c c d) '(c d e f))

任何人都可以帮我解决我的问题吗?提前致谢

scheme intersection list duplicates racket

-1
推荐指数
1
解决办法
254
查看次数

声明一个没有返回值的函数?

我们可以在函数式语言中创建一个带void(即没有返回值)的函数吗?像Haskell或Scheme

scheme haskell functional-programming

-1
推荐指数
2
解决办法
2520
查看次数

为什么返回这个?

我正在尝试使用lambda,但是当我在控制台中对其进行测试时,它会返回#<procedure:...esktop/Lab 4.rkt:105:2>

我的代码是

(define (comp f g)
  (lambda (x) (f (g x))))
Run Code Online (Sandbox Code Playgroud)

我的测试代码是

(comp (lambda (x) (+ x 1)) 3)
Run Code Online (Sandbox Code Playgroud)

由于某种原因,lambda推迟了评估。有人可以帮忙吗?

lisp scheme

-1
推荐指数
1
解决办法
47
查看次数

在方案中显示和返回内容的程序?

我希望我的程序打印一些东西,然后返回那个东西。我试过这个

(define (print x)
    ((display x)
     x))
Run Code Online (Sandbox Code Playgroud)

不是应该直接说这个过程x首先显示然后返回它,就像它在过程结束时所表达的那样吗?好吧,显然这是错误的,而且我对Scheme 有一些非常基本的了解。所以任何人,帮助我理解这一点。谢谢

syntax scheme function definition function-call

-1
推荐指数
1
解决办法
159
查看次数

我的lisp编译器中未定义"Define"(Steel Bank Common Lisp)

我正在研究关于SICP(计算机程序的结构和解释)的书,这本书要求我学习lisp,所以我为windows安装了一个名为SBCL(Steel Bank Common Lisp)的lisp编译器.问题是我从书中看到了这个代码:

(define pi 3.14159)
(define radius 10)
(* pi (* radius radius))
Run Code Online (Sandbox Code Playgroud)

将其保存在notepad ++上作为filename.lisp并运行它.

发生错误,说:"函数COMMON-LISP-USER :: DEFINE未定义." 为什么会这样?我如何使这项工作?

lisp scheme common-lisp

-2
推荐指数
1
解决办法
284
查看次数

方案中的程序

我是一名电气工程师,正试图在互联网上学习计划.我想采取罪恶x的方格,但我失败了.我想我需要一个使(数字,数字) - (数字,数字)的功能.所以它应该取lambda x和lambda f并计算square(fx).但是我被卡住了,我不能写这段代码.谁能写这个?

scheme procedure racket

-2
推荐指数
1
解决办法
98
查看次数

将 Python 翻译成 Scheme/Racket

我目前正在尝试翻译这个 python 2 代码:

import math

def worstCaseArrayOfSize(n):
    if n == 1:
        return [1]
    else:
        top = worstCaseArrayOfSize(int(math.floor(float(n) / 2)))
        bottom = worstCaseArrayOfSize(int(math.ceil(float(n) / 2)))
        return map(lambda x: x * 2, top) + map(lambda x: x * 2 - 1, bottom)
Run Code Online (Sandbox Code Playgroud)

进入球拍/方案代码,并且遇到困难。

这是我到目前为止:

(define (msortWorstCase n)
  (cond
    [(equal? 1 n) 1]
    [else (let* ([top (msortWorstCase(floor (/ n 2)))] [bottom (msortWorstCase (ceiling (/ n 2)))]) 

(append (map (lambda (x) (* x 2)) (list top)) (map (lambda (x) (- (* x 2) …
Run Code Online (Sandbox Code Playgroud)

lisp scheme racket python-2.7

-2
推荐指数
1
解决办法
749
查看次数