De acordo com o scheme.org Implementations GNU Guile suporta as versões R6 e R7 do Scheme. E o executável guile tem argumentos de linha de comando de "--r6rs" e "--r7rs". E o site Guile diz
Como o R7RS é um padrão muito menos ambicioso que o R6RS (veja Guile e Scheme), é muito fácil para o Guile dar suporte. Como tal, o Guile é uma implementação totalmente conforme do R7RS, com exceção de um bug ocasional e alguns recursos não implementados :
- O R7RS especifica uma sintaxe para ler estruturas de dados circulares usando rótulos de dados, como #0=(1 2 3 . #0#). O leitor de Guile não suporta essa sintaxe atualmente; https://bugs.gnu.org/38236 .
- Assim como no R6RS, vários recursos lexicais do R7RS entram em conflito com a sintaxe histórica do Guile. Além de r6rs-hex-escapes e hungry-eol-escapes (veja Incompatibilidades com o R6RS), o recurso de leitor r7rs-symbols precisa ser explicitamente habilitado.
E o Index em scheme.org mostra vector->string como parte do R7RS small . No entanto, quando executo o Guile com a opção --r7rs, ele não reconhece vector->string.
"Variável não vinculada: vetor->string"
O mesmo código funciona com o esquema MIT/GNU
(display (vector->string #(#\H #\i #\!))) ; => "Hi!"
A ausência deles parece ser um descuido no suporte ao R7RS, sim. Considere registrar um relatório de bug sobre isso?
Enquanto isso, aqui estão as versões de
string->vector
evector->string
para Guile.