我需要在Scheme中编写一个充当拉链的函数 - 这意味着它需要两个列表并从两个列表中创建一个“拉链”,这样
(zip '(a b c) '(1 2 3)) => ((a 1) (b 2) (c 3))
Run Code Online (Sandbox Code Playgroud)
此外,它获取第 n 个位置的每个元素并将它们配对在一起。
我对计划相当陌生,所以任何帮助将不胜感激!谢谢!
我正在用方案编码一个函数,但我收到一个“应用程序:不是过程;期望一个可以应用于参数的过程”错误。我假设我没有正确使用条件语句:
(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)
如果有人能指出我的错误,将不胜感激。
我想在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)
有任何想法吗?
我有一段代码可以得到两个列表的交集.但是,我想删除列表中的所有重复项.我用的是这个功能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))
任何人都可以帮我解决我的问题吗?提前致谢
我们可以在函数式语言中创建一个带void(即没有返回值)的函数吗?像Haskell或Scheme
我正在尝试使用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推迟了评估。有人可以帮忙吗?
我希望我的程序打印一些东西,然后返回那个东西。我试过这个
(define (print x)
((display x)
x))
Run Code Online (Sandbox Code Playgroud)
不是应该直接说这个过程x首先显示然后返回它,就像它在过程结束时所表达的那样吗?好吧,显然这是错误的,而且我对Scheme 有一些非常基本的了解。所以任何人,帮助我理解这一点。谢谢
我正在研究关于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未定义." 为什么会这样?我如何使这项工作?
我是一名电气工程师,正试图在互联网上学习计划.我想采取罪恶x的方格,但我失败了.我想我需要一个使(数字,数字) - (数字,数字)的功能.所以它应该取lambda x和lambda f并计算square(fx).但是我被卡住了,我不能写这段代码.谁能写这个?
我目前正在尝试翻译这个 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) scheme ×10
racket ×5
lisp ×3
list ×2
common-lisp ×1
definition ×1
duplicates ×1
function ×1
haskell ×1
intersection ×1
procedure ×1
python-2.7 ×1
syntax ×1
zipper ×1