2011-12-21 1 views
0

У меня проблема с конкатенацией и пробелами в Схеме. Результат команды:Как использовать конкатенацию в схеме без пробелов

(append '(%procedure:) (list '+) '(%))**  //with spaces 

является:

%procedure: + %  //without spaces 

Как я могу сделать тот же результат без пробелов между списками, так что результат будет:

%procedure:+% 
+5

'string-append' – Peteris

+3

Вы пытаетесь создать символ, строку или что-то еще? –

ответ

1

append возвращает список, а оценщик печатает результат подобно (abc), где вставляются пробелы, чтобы сделать представление понятным. Если вам нужно %procedure:+%, вы можете создать новый символ или использовать строки вместо символов.

4

Вы пытаетесь использовать символы, которые не являются строками в Схеме. Если вы хотите контролировать свой печатный результат, вы должны использовать строки, которые являются массивами символов.

> (append '(hello) '(world)) 
(hello world) 
> (string-append "hello " "world") 
"hello world" 
> (symbol->string 'hello) 
"hello" 
> (apply string-append (map symbol->string '(a b c d e f g))) 
"abcdefg"