LINUX.ORG.RU

История изменений

Исправление 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)

?