История изменений
Исправление monk, (текущая версия) :
Если мы считаем синтаксические элементы, то должны считать всё, идентификаторы, открывающие и закрывающие скобки, разделители, и т.д…
Тогда для питона придётся пробелы в начале строки считать. Они ведь в нём синтаксически значимы.
python проще racket-а потому, что в нём большее делается меньшим числом различных вызовов.
Десяток вызовов Racket-а заменяет один open() Python-а.
Передёргиваешь. Вот вызовы с той страницы
open-input-file
open-output-file
open-input-output-file
call-with-input-file
call-with-output-file
call-with-input-file*
call-with-output-file*
with-input-from-file
with-output-to-file
port-try-file-lock?
port-file-unlock
port-file-identity
Последние три, очевидно, к открытию файла не относятся. Конструкции with-… в питоне вроде невозможны. Или что написать, чтобы работало
with .... open("file.txt"):
print "ok"
и это «ok» записалось в файл, а не стандартный вывод?
Для аналога call-with…* в питоне требуется конструкция with .. as, а не только open.
Аналога call-with… (без звёздочки) в питоне не существует. Правда в нём и нет, потребности, так как продолжение сохранить невозможно.
Остаётся три функции на open и две функции на with/as. Уже не один к десяти.
Кроме того, как при помощи open реализовать
(open-output-file #:exists 'must-truncate)
(open-output-file #:exists 'truncate/replace)
(open-output-file #:exists 'update)
?
Исходная версия monk, :
Если мы считаем синтаксические элементы, то должны считать всё, идентификаторы, открывающие и закрывающие скобки, разделители, и т.д…
Тогда для питона придётся пробелы в начале строки считать. Они ведь в нём синтаксически значимы.
python проще racket-а потому, что в нём большее делается меньшим числом различных вызовов.
Десяток вызовов Racket-а заменяет один open() Python-а.
Передёргиваешь. Вот вызовы с той страницы
[code] open-input-file open-output-file open-input-output-file call-with-input-file call-with-output-file call-with-input-file* call-with-output-file* with-input-from-file with-output-to-file port-try-file-lock? port-file-unlock port-file-identity [/code]
Последние три, очевидно, к открытию файла не относятся. Конструкции with-… в питоне вроде невозможны. Или что написать, чтобы работало
with .... open("file.txt"):
print "ok"
и это «ok» записалось в файл, а не стандартный вывод?
Для аналога call-with…* в питоне требуется конструкция with .. as, а не только open.
Аналога call-with… (без звёздочки) в питоне не существует. Правда в нём и нет, потребности, так как продолжение сохранить невозможно.
Остаётся три функции на open и две функции на with/as. Уже не один к десяти.
Кроме того, как при помощи open реализовать
(open-output-file #:exists 'must-truncate)
(open-output-file #:exists 'truncate/replace)
(open-output-file #:exists 'update)
?