Поиск:

Ответ в темуСоздание новой темы Создание опроса
> KeyWords, в чем их суть? 
:(
    Опции темы
Coder
Дата 20.9.2006, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: нет
Всего: 11



Читая мануал наткнулся на : 

Цитата

Symbols like t and nil are called self-evaluating symbols, because
they evaluate to themselves. There is a whole class of self-evaluating
symbols called keywords; any symbol whose name starts with a colon is a
keyword. (See below for some uses for keywords.) Some examples:

Вот то что было ниже...
Код

> :this-is-a-keyword
:THIS-IS-A-KEYWORD
> :so-is-this
:SO-IS-THIS
> :me-too
:ME-TOO


Меня смутила строчка See below for some uses for keywords. Оказалось что ниже по тексту ключевые слова больше не разбираются и это относилось к трем примерчикам расположенных снизу. Я хочу разобраться, как и где используются ключевые слова?
PM MAIL   Вверх
svg
Дата 20.9.2006, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 13.4.2005

Репутация: 14
Всего: 18



Цитата(Coder @  20.9.2006,  01:16 Найти цитируемый пост)
Меня смутила строчка See below for some uses for keywords. Оказалось что ниже по тексту ключевые слова больше не разбираются и это относилось к трем примерчикам расположенных снизу. Я хочу разобраться, как и где используются ключевые слова? 


Keywords - это символы, принадлежащие пакету KEYWORD. Двоеточие - просто спецсимвол для парсера.
Отличие от прочих символов - keyword не может иметь значения и свойств.

Код

> :this-is-a-keyword


эквивалентно

Код

> (intern "THIS-IS-A-KEYWORD" "KEYWORD")


или
Код

> 'KEYWORD::THIS-IS-A-KEYWORD


Так как по двоеточию язык легко определяет пакет символа - нет надобности его экспортировать

:this-is-a-keyword <=> 'KEYWORD::THIS-IS-A-KEYWORD

Основное назначение keywords - удобочитаемые аргументы, разделители и константы - по двоеточию сразу понятно
для чего используется символ.

C/C++ используют для подобных целей числа+препроцессор, Perl/Python - строки.


Это сообщение отредактировал(а) Cr@$h - 21.9.2006, 10:23
PM MAIL   Вверх
Coder
Дата 21.9.2006, 07:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: нет
Всего: 11



Цитата(svg @ 20.9.2006,  12:18)
Отличие от прочих символов - keyword не может иметь значения и свойств.

....
....

Основное назначение keywords - удобочитаемые аргументы, разделители и константы - по двоеточию сразу понятно
для чего используется символ.

если они не могут иметь значений, как же их использовать в качестве констант и агрументов?
PM MAIL   Вверх
svg
Дата 21.9.2006, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 13.4.2005

Репутация: 14
Всего: 18



Цитата(Coder @  21.9.2006,  07:14 Найти цитируемый пост)
если они не могут иметь значений, как же их использовать в качестве констант и агрументов? 


Цитата(Coder @  20.9.2006,  01:16 Найти цитируемый пост)
There is a whole class of self-evaluating
symbols called keywords; any symbol whose name starts with a colon is a
keyword. (See below for some uses for keywords.) 


Так как эти символы self-evaluating их вычисляемым значением являются они сами.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума LISP
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Lisp — это целое семейство языков. Всегда указывайте в теме используемый диалект (Common Lisp, Scheme и т.д.).
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | LISP | Следующая тема »


 




[ Время генерации скрипта: 0.0668 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.