Схема - стандартный способ в R5RS выполнить внешнюю команду?

Есть ли способ в Scheme Revision 5 вызвать внешнюю программу? Например:

(system "ls")

Если нет, есть ли какой-либо «официальный» способ сделать это, например, указанный в SRFI или более поздней версии спецификации схемы (R6RS и т. д.)?


person Justin Ethier    schedule 24.02.2011    source источник


Ответы (1)


No.

(Как правило, пытаться писать код со «Стандартной схемой» — плохая идея, и system — это одна из тех вещей, которые вряд ли станут достаточно стандартными, чтобы их можно было использовать вне конкретной реализации или через какую-то библиотеку совместимости.)

person Eli Barzilay    schedule 24.02.2011
comment
Полезно знать - спасибо за ответ. Мне любопытно, хотя - почему писать стандартную схему - плохая идея? Это потому, что отдельные реализации предоставляют так много своих собственных библиотек, пакетов и т. д.? - person Justin Ethier; 24.02.2011
comment
Это потому, что стандарт достаточно тонкий, чтобы по своей сути не включать вещи, которые всегда будут иметь конкретные реализации. Именно поэтому Scheme лучше рассматривать как семейство похожих языков, а не как отдельный язык. (Представление о конкретном языке работает до тех пор, пока вы не занимаетесь такой реальной работой). - person Eli Barzilay; 24.02.2011
comment
Пишу много кода по стандартной схеме (R5RS) и использую популярные SRFI (1,9). Так что вы подразумеваете под плохой идеей? - person knivil; 24.02.2011
comment
Я имел в виду реальную работу — все, что требует запуска подпроцессов (как в этом случае), графического интерфейса, сетевых подключений, параллелизма, баз данных и т. д. и т. д. - person Eli Barzilay; 24.02.2011
comment
ОК - я не пытаюсь начать флейм или что-то в этом роде. Просто пытаюсь понять спецификации Scheme и то, как они вписываются в повседневное программирование... - person Justin Ethier; 24.02.2011