scheme - 我可以使用附加!在文字列表上?
问题描述
据我了解,在字面上使用set-car!
or是无效的。set-cdr!
(define nums '(1 2 3))
(set-car! nums 10) ; Invalid.
考虑到这一点,我可以使用文字列表作为 SRFI 1append!
程序的参数吗?我之所以问这个问题,是因为除了最后一个参数之外的所有实现都append!
可能使用. 如果在文字列表上无效,那么在文字列表上使用也是如此。我的想法正确吗?set-cdr!
append!
set-cdr!
append!
给给的最后一个参数使用文字列表怎么样append!
?
案例:
(append! (list 1) '(2 3))
——这有效吗?(append! '(1) (list 2 3))
——这有效吗?
解决方案
如果系统将列表实现为纯函数数据,那么就不可能以方便的方式进行变异。因此,此要求不会强加 cons 单元的突变以允许纯功能实现有效(反之亦然,此类实现的存在会对定义要求产生影响)。
推荐阅读
- python - 在 python 上覆盖 __getitem__
- python - 当我尝试将 Circle 函数应用于 folium 地图时,它会给出“NAN”错误
- android - 将 cocos2d Android 应用程序导出为 aar 并从另一个项目调用其 Activity
- csv - 调整 CSV 形状(所有值都在最后一列下)
- excel - 计算cp & cpk
- java - 如果没有 JUnit 的 @Test 注解,Spock 测试用例将无法工作
- git - 如何将 git log -L /regex/ 与换行符一起使用?
- microservices - 在 Cosmos DB 中嵌入来自另一个文档的数据
- regex - 如何使用 2 个正则表达式和一个返回值?
- python - Python按另一个列表排序列表,但排序的是日期类型