Кажется, что функция do в rebol принимает неограниченное количество аргументов. Могу ли я сделать это с помощью моей собственной функции (без использования блока аргументов)?
Функция Rebol и неограниченное количество аргументов
Ответы (2)
Невозможно определить функцию с переменным количеством аргументов. Последнее сообщение в этой ветке списка рассылки Rebol http://www.rebol.org/ml-display-thread.r?m=rmlDTXB имеет объяснение.
Также функция do принимает единственный аргумент:
>> ? do
USAGE:
DO value /args arg /next
DESCRIPTION:
Evaluates a block, file, URL, function, word, or any other value.
DO is a native value.
ARGUMENTS:
value -- Normally a file name, URL, or block (Type: any)
REFINEMENTS:
/args -- If value is a script, this will set its system/script/args
arg -- Args passed to a script. Normally a string. (Type: any)
/next -- Do next expression only. Return block with result and new position.
person
Peter W A Wood
schedule
14.09.2009
Вы правы, что в REBOL есть вариативные функции, например, функция DO. В R2 даже функция MAKE является вариативной. Тем не менее, диалект спецификации функций не позволяет вам определять вашу собственную вариативную функцию, и такая функция даже не планируется.
person
Ladislav
schedule
25.07.2010
Rebol должен быть более выразительным, чем другие языки, поэтому неприятно не иметь возможности сделать это или иметь дополнительные параметры. C # 4 теперь, по крайней мере, реализовал это davidhayden.com/blog / dave / archive / 2009/06/02 / Я не дизайнер rebol, я просто пользователь, но как пользователь я знаю, что мне действительно нужно для продуктивной работы, и это одна из вещей Я тоже с нетерпением жду. Или, по крайней мере, должна быть возможность подключить консоль для создания нашей собственной обработки синтаксиса, но это тоже невозможно.
- person Rebol Tutorial; 25.07.2010
Консоль - это жемчужина ребола, жаль, что ее нельзя легко настроить с помощью некоторых хуков, которые делают wordpress успешным - хотя wordpress не является языком программирования, я имею в виду, что принцип является ключевым.
- person Rebol Tutorial; 25.07.2010
Ошибочно сравнивать REBOL ‹code› f 1 2 3 ‹/code›, например, с C ‹code› f (1, 2, 3) ‹/code›. Фактически, если вы используете такой же сложный синтаксис, как и в C, вы можете делать в REBOL все, что захотите, используя ‹code› f [1 2 3] ‹/code›, который в REBOL на самом деле является только унарным вызовом, нет независимо от того, сколько аргументов вы поместите в блок. Используя этот синтаксис, вы можете легко обнаружить, что у вас на самом деле гораздо более высокая выразительность, чем в C, поскольку ни порядок, ни количество, ни какое-либо другое свойство аргумента не ограничено.
- person Ladislav; 26.07.2010
это 4 KEYPRESS двумя руками :) Это наиболее важно в вопросе доступности, когда вы используете консоль в качестве GUI конечного пользователя.
- person Rebol Tutorial; 27.07.2010
Я не использую консоль для написания скриптов REBOL. Вместо этого я использую некоторые текстовые редакторы для этой цели.
- person Ladislav; 01.08.2010
И мне очень любопытно, какую раскладку клавиатуры вы используете, учитывая, что ваше примечание не относится к раскладке для США.
- person Ladislav; 01.08.2010