Scheme R6RS中的选择器

时间:2012-08-18 09:58:28

标签: scheme r6rs

我正在读一本旧书

  

简单方案:介绍计算机科学

你可以找到它here

在第五部分中,它介绍了“选择器”,运算符如下:

(first 'abcd) ;-> A
(butfirst 'abcd) ;-> BCD

依旧......

在R6RS中是否存在类似的东西? (因为没有定义这个运算符)。

1 个答案:

答案 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中区分大小写,因此结果将与传递给过程的情况相同。