我想根据其值创建列表的子集.例如:
List (AA AB BA DC AD)
Run Code Online (Sandbox Code Playgroud)
我想要一个列表,其中包含所有原子的值,从'A'开始.所以答案应该是:
(AA AB AD)
Run Code Online (Sandbox Code Playgroud)
我现在可以通过遍历整个列表并将每个值转换为另一个列表并读取第一个值然后重新创建列表来实现此目的.
这是一个非常复杂的解决方案.
Scheme中是否有任何方法可以读取列表中字符串的第一个字符并删除该元素?
在Racket中,我试图在"cond"语句中打印多个表达式,如下所示,
(let ((var `(make))
(exp '(1 2)))
(cond
[(number? 2) `(hi ,var)
`(bye ,exp)]))
Run Code Online (Sandbox Code Playgroud)
但只有"再见"声明被返回/打印在屏幕上.第一个"hi"根本没有被删除.我如何退回/打印两者?
假设我在Scheme中有一个列表列表,如下所示:
(define a-list (list (list a b) (list c d) (list e f) (list g h) (list i j)))
Run Code Online (Sandbox Code Playgroud)
我将如何定义一个消耗此列表的函数,以便我可以使用另一个函数来使用列表中的每个字母?
例如,我有另一个功能
(define (smorg a)
(...))
Run Code Online (Sandbox Code Playgroud)
那么,我怎么去做smorg a,smorg b,smorg c ......?
寻找一个类似于以下内容的函数:
(foo 3 2) => '( ( (1 1) (1 2) (1 3) )
( (2 1) (2 2) (2 3) ) )
Run Code Online (Sandbox Code Playgroud)
DrRacket中是否有任何内置函数可以实现这一功能?
这一定很容易实现,但我是新手,不知道如何:
我有一个列表(1 2 3 4)并想将其转换为(1)(2)(3)(4)
或者有没有办法将其构建为(1)(2)(3)(4).我在用
cons '(element) call-function
Run Code Online (Sandbox Code Playgroud)
在函数内构建它(递归)
有没有一种简单的方法来显示整数有理数,例如:
(average '(1 2 3 4)) ;returns 2 1/2
Run Code Online (Sandbox Code Playgroud)
我希望它返回5/2.谢谢.
在Scheme/Racket中执行此操作
问题是:取两个等长的数字列表,然后返回一个由位置最小的数字组成的列表.
例如: listMins( '(1 7 5) '(2 8 3) )
返回(1, 7, 3)因为1<2与7<8和3<5
我是函数式编程的新手,在递归时很弱.我觉得好像我只是缺少一些我不知道如何处理我的伪代码的关键部分,所以我可以开始编写这个真实的代码.(我尝试先跳入代码,但它没有用,所以我退回到伪代码.)
伪代码:
(listMins x, y)(
(if !null A)
(if > listAitem listBitem)
(add A to newList) ;where do I make newList?
(add B to newList)
(return newList)
)
Run Code Online (Sandbox Code Playgroud) 我已经尝试了各种各样的缺点组合并附加产生'(5.(5))但我不能.有什么办法吗?
我正在寻找一种仅使用文件夹映射两个不同列表项的方法
(map-Using-FoldR '( 1 2 3 4) '( w x y z))
Run Code Online (Sandbox Code Playgroud)
应该回来
'((1 w) (2 x) (3 y) (4 z))
Run Code Online (Sandbox Code Playgroud)
或者换句话说-使用foldr实现“ map”命令是可能的吗?谢谢!
我试图找出方案中最大的int值到底是多少?例如,在Java中,最大的有符号整数为2 ^ 31-1。
如何在方案中获取此值(最大的int值)