list - 从两个不同大小的列表创建对列表
问题描述
对于 Scheme 来说还是新手,我目前在创建由两个不同长度的单独列表构成的对列表时遇到了麻烦。
这是我当前的代码:
#lang racket
(define letters '(a b c))
(define (create-lst-letters lst)
(map (lambda (x y) (list x y)) letters lst))
控制台输入:
(create-lst-letters '(1 2 3 4 5 6 7 8))
电流输出:
map: all lists must have same size
first list length: 8
other list length: 3
想要的输出:
'((a . 1) (b . 2) (c . 3) (a . 4) (b . 5) (c . 6) (a . 7) (b . 8))
另一个直觉是得到输入列表长度除以“字母”的商和余数。通过附加“字母”商时间创建一个新列表,然后连接“字母”元素的第一个余数。使用该新列表执行上述地图。我不觉得这是一个好的做法,也不是一个优雅的解决方案,但我没有其他想法。
解决方案
推荐阅读
- php - 在后台单击按钮时运行 PHP 脚本(无论用户页面更改或浏览器退出)
- python - 为什么要使用 Python 的 `open()` 函数来打开文件描述符?
- c++ - 创建一个类 Name_class 并将两种数据类型存储在一个向量中
- python - 如何使用 Python 将日期时间属性添加到我的 JPG 文件中,以便在 Google 照片中正确索引?
- kubernetes - 尝试在 win10 中使用 minikube 访问 kubernetes nodeport 服务时连接被拒绝
- javascript - 无法将二进制数据从 jQuery 保存到 AWS S3
- reactjs - 反应本机内存泄漏反应本机手势处理程序
- lua - 将“local i = 1”作为单行放入lua终端有什么用处?
- saas - SAAS 用户自定义域功能的正确结构
- excel - 突出显示值前后有空格的单元格