2009-09-12 2 views
0

Я определил эти псевдонимы в user.rRebol Сценарий: Alias ​​слово уже используется: F, тогда как это не так

alias 'powershell "pw" 
alias 'explorer "o" 
alias 'open-program-files "pf" 
alias 'cmd "dos" 
alias 'edituser "eu" 
alias 'run-firefox "fx" 
alias 'run-firefox "f" 

При запуске Rebol он показывает

** Script Error: Alias word is already in use: f 
** Near: alias 'run-firefox "f" 

Этот не является истинным, на самом деле, когда я печатаю источник f, он говорит undefined:

>> source f 
f: undefined 
>> 

Так почему это сообщение?

ответ

1

К сожалению, REBOL's ALIAS имеет сильную слабость, по крайней мере, в R2: работает только по всему миру.

Так что если любой процесс уже использовал слово, он недоступен для ALIASING.

Теперь вы не определили его. Но если проверить общий объем работ уже определены при запуске свежей консоли, вы можете быть удивлены видеть, что есть несколько тысяч из них:

print length? first system/words 

И (по крайней мере, с версией R2 Я просто попытался его на), который включает в себя слово й:

find first system/words 'f 

Даже если х не имеет текущее значения, сам факт того, что было ранее использует перестает это используется с АЛИАСОМ.

ALIAS является сильным кандидатом на удаление в R3 из-за этого (и других) ограничений в его использовании.

+0

Привет, спасибо, это интересно. Если он удалится с R3, надеюсь, что он вернется позже с более надежной версией, потому что это будет отсутствующая функция по сравнению с псевдонимами Powershell, поскольку Rebol, как правило, хорош для «Модели развития администратора», см. Http://blogs.msdn.com/ powerhell/archive/2007/01/01/the-admin-development-model-and-send-snippet.aspx –

+0

Здесь подробно обсуждается будущее ALIAS: http://www.rebol.net/r3blogs/ 0242.html У него все еще есть шанс выжить в лучшем состоянии под R3. – Sunanda

+0

«Я один из тех, кто только использовал ALIAS для создания отчетов об ошибках ....»: D Ну, похоже, я столкнулся с еще одной странной ошибкой: когда я загружаю скрипт, который создает функцию, которая вызывает псевдоним , Не уверен, что это всегда будет систематически, придется снова проверять. –

0

В качестве словаря для переоборудования says: Будьте осторожны, чтобы не путать псевдоним с установкой другого слова на то же значение.

alias - еще одна упускаемая особенность Ребола. Если вам просто нужно добавить новые имена ссылаются на существующие глобальные значения (включая функцию), вы можете просто сделать это прямо без alias:

pw: :powershell 
o: :explorer 
pf: :open-program-files 
dos: :cmd 
eu: :edituser 
fx: :run-firefox 
f: :run-firefox 

alias позволит создать новый символ, который будет вести себя идентично оригиналу один. Мы говорим здесь о символах эквивалентности, а не словах meaning эквивалентности (в конечном итоге упомянутого значения). Одним из наиболее полезных применений для псевдонимов является перевод слов, которые можно использовать в качестве замены для исходных. Например:

>> alias 'monday "lundi" 
== lundi 
>> 'monday = 'lundi 
== true 
>> find [friday monday sunday] 'monday 
== [monday sunday] 
>> find [friday monday sunday] 'lundi 
== [monday sunday] 

Как вы можете видеть, используя слово псевдонима, позволяет создавать различные варианты написания и то же слово, поэтому псевдонимы могут быть обработаны одним и тем же кодом без необходимости изменять.

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

PS: lundi - это французское слово для monday.

 Смежные вопросы

  • Нет связанных вопросов^_^