2016-09-02 5 views
-1

Есть ли предикат, доступный через библиотеку SWI-Prolog, который предоставляет механизм для интерполяции в строки?Prolog (SWI): строка интерполяция

Что я имею в виду, будет работать следующим образом:

string(hello, %s, David) 

Однако, я не уверен, что если конкатенации делает нужную функциональность ненужным.

write("hello",string(david)). % possibly inaccurate 

ответ

0

Похоже, что я нашел ответ в документации, но я оставлю свой вопрос для других. SWI's formatted write предоставляет необходимую мне функциональность.

?- swritef(S, '%15L%w', ['Hello', 'World']). 
S = "Hello   World" 

Пожалуйста, не стесняйтесь прокомментировать, возможен ли более эффективный подход или если я не обращу внимания на детали реализации.

+2

Как указано в документации, связанной с текстом, семейство предикатов 'writef' ** устарело **. Используйте 'format/2' и' format/3' вместо этого! – mat

+0

@mat Извините, спасибо, спасибо! –