我正在读一本旧书
简单方案:介绍计算机科学
你可以找到它here。
在第五部分中,它介绍了“选择器”,运算符如下:
(first 'abcd) ;-> A
(butfirst 'abcd) ;-> BCD
依旧......
在R6RS中是否存在类似的东西? (因为没有定义这个运算符)。
答案 0 :(得分:3)
根据我的评论,这可能会非常困难。
另一方面是Simply Scheme将符号视为'字符串'。
使用该信息,您可以编写以下内容:
(define (first s)
(string->symbol (string (car (string->list (symbol->string s))))))
(define (butfirst s)
(string->symbol (apply string (cdr (string->list (symbol->string s))))))
另请注意,符号在R6RS中区分大小写,因此结果将与传递给过程的情况相同。