假设我们给了一个4元组(1,2,3,“cookies”)并喜欢将它映射到一个较小的元组(1,2,3)。如何实现这种映射?是否存在类似于“切片”功能的东西,例如蟒?
在这个背景下还有另一个问题:如何像“1.5”被转换为1.5?有没有'toFloat'功能? - >在这里找到了解决方案对于stackoverflow研究不足,我深表歉意。 (见:Turn string into number in Racket)
感谢您提供任何提示
答案 0 :(得分:2)
你总是可以创建自己的功能,一种" my-4-tuple-to-3-tuple"基于旧元组创建新元组的函数。如果你有很多不同的4个元组,这是不好的,因为它不是一个非常通用的解决方案。
例如......如果您将元组表示为列表。
(define (4tuple-to-3tuple 4tuple)
(list (first 4tuple) (second 4tuple) (third 4tuple))
答案 1 :(得分:1)
我没有在小数点上实际使用它,但你可以使用它 (字符串 - >数字“1.5”)它应该工作,但是可能有一个数字真实或nunber浮动
答案 2 :(得分:1)
使用drop
和take
。
如果您需要从列表末尾删除某些内容,请执行以下操作:
`(reverse (drop (reverse xs) 5)`
使用rest
删除单个元素:
`(reverse (rest (reverse xs))`
请注意,如果您需要经常操作列表的末尾,则单个链接列表是一个糟糕的表示选择。
要将字符串转换为数字,请使用string->number
。
drop
上的文档:
http://docs.racket-lang.org/reference/pairs.html?q=drop
string->number
上的文档:
http://docs.racket-lang.org/reference/generic-numbers.html?q=string-%3Enumber
答案 3 :(得分:1)
vector-copy
来获取拼接