球拍:从k元组映射到n元组

时间:2017-09-03 13:01:16

标签: tuples racket slice

假设我们给了一个4元组(1,2,3,“cookies”)并喜欢将它映射到一个较小的元组(1,2,3)。如何实现这种映射?是否存在类似于“切片”功能的东西,例如蟒?

在这个背景下还有另一个问题:如何像“1.5”被转换为1.5?有没有'toFloat'功能? - >在这里找到了解决方案对于stackoverflow研究不足,我深表歉意。 (见:Turn string into number in Racket

感谢您提供任何提示

4 个答案:

答案 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)

使用droptake

如果您需要从列表末尾删除某些内容,请执行以下操作:

 `(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)

  1. 使用向量代替郁金香
  2. 使用vector-copy来获取拼接
  3. 指向vector的链接:http://docs.racket-lang.org/reference/vectors.html