对于真正使用方案的人来说,简单的问题,简单的答案。如何确定变量是否是字母表中的字母?
我假设它是这样的(字母?x),其中x是某种不定类型。谁能告诉我可以使用什么布尔函数?
编辑:
我怎样才能做出看起来像这样的东西:(somFunction-isALetter?a)返回:#t
其中 a 不是变量。
我试图回答的问题:
13195 的质因数是 5、7、13 和 29。数字 600851475143 的最大质因数是多少?
我哪里错了?我的盛年?test 似乎是问题所在,但它在相对较小的数字上工作得很好。但总理?测试给出了较大数字的错误答案。有没有更简单的方法来解决这个问题?
(define b 3)
(define z 0)
(define divides?
(lambda (a b)
(= (remainder a b) 0)))
(define (prime? n)
(cond
((or (= n 1) (= n 0)) false)
((even? n) false)
((= n 2) true)
((= n b) true)
((divides? n b) false)
(else (and (set! b (+ b 1)) (prime? n)))))
;Largest Prime Factor Test
(define (LPF x)
(cond
((divides? 600851475143 x)
(cond
((prime? x)
(cond
((> x z) …Run Code Online (Sandbox Code Playgroud) (define generalized-triangular\n (lambda (input n)\n (if (= n 1)\n 1\n (+ (input n) (generalized-triangular (- n 1))))))\nRun Code Online (Sandbox Code Playgroud)\n\n该程序旨在以数字和函数作为输入并执行以下操作。
\n\nf(1) + f(2) + f(3)+ \xe2\x80\xa6 + f(N).\nRun Code Online (Sandbox Code Playgroud)\n\n输入示例如下:
\n\n(generalized-triangular square 3)\nRun Code Online (Sandbox Code Playgroud)\n\n错误消息:
\n\n(define generalized-triangular\n (lambda (input n)\n (if (= n 1)\n 1\n (+ (input n) (generalized-triangular (- n 1))))))\nRun Code Online (Sandbox Code Playgroud)\n 当我尝试执行这段代码时:
\n\n((lambda (a) (cons (quote a) a)) \xe2\x80\x99(d a b))\nRun Code Online (Sandbox Code Playgroud)\n\n我收到错误:
\n\n\n\n\n\xe2\x80\x99:模块中的未绑定标识符:\xe2\x80\x99
\n
有人可以帮我解释一下吗?
\n我不明白为什么我的获取最大数字的函数不起作用。如果我正确地思考这一点,如果第一个原子小于第二个原子,那么您调用该函数减去列表中的第一个原子,否则您将使用列表的其余部分构造第一个原子,即最大的原子。相关代码:
(define (getlargest a_list)
(cond
((null? a_list) '())
((< (car a_list) (cadr a_list)) (getlargest (cdr a_list)))
(else (cons (car a_list) (getlargest(cdr a_list))))))
Run Code Online (Sandbox Code Playgroud) 在 ISL 中,如何创建一个递归 append函数,该函数接受两个列表并返回第一个列表的所有最高位置元素和第二个列表的最高位置元素的列表(不使用lambdaor append)?
基本上,支持这些检查的函数需要:
(check-expect (append-test '(a b c) '(d e f g h)) (list 'a 'b 'c 'd 'e 'f 'g 'h))
(check-expect (append-test '() '(7 2 0 1 8 3 4)) (list 7 2 0 1 8 3 4))
Run Code Online (Sandbox Code Playgroud)
我觉得它肯定会使用map,因为这是我们最近一直关注的重点。这是我所拥有的,它确实有效,但我想知道是否有一种方法可以使用 map、foldr、foldl、filter 或类似的东西来简化它。
这是我到目前为止所拥有的:
(define (append-test lst1 lst2)
(cond
[(and (empty? lst1)(empty? lst2)) '()]
[(empty? lst1) lst2]
[(empty? lst2) lst1]
[else (cons (first (first (list lst1 lst2)))
(append-test …Run Code Online (Sandbox Code Playgroud) 在 Racket 中使用序列长度、序列引用、序列映射等而不是列表(长度列表引用等)、字符串(字符串长度、字符串引用等)、向量等的不同函数有什么缺点吗?
有没有更快的方法来编写以下代码?
(list var1 var2 var3 var4 var5 ... var100)
Run Code Online (Sandbox Code Playgroud)
基本上所有元素都是带有前缀“var”的变量。
假设我有一个列表,但我想将其转换为values. 例如:
(define (f mylist)
(values ...)) ; <- What do I write here?
Run Code Online (Sandbox Code Playgroud)
如果我打电话(f '(1 2 3)),我希望得到与(values 1 2 3). 我怎样才能做到这一点?