1 | |
Clojure Базовые идеи языка Lisp17.09.2012, 14:31. Показов 5838. Ответов 65
википедия
0
|
17.09.2012, 14:31 | |
Ответы с готовыми решениями:
65
Работа со списками в LISP, используя базовые функции CAR, CDR, CONS Что из себя представляют базовые средства языка? ПЕРЕМЕННЫЕ И БАЗОВЫЕ ТИПЫ ДАННЫХ ЯЗЫКА ПРОГРАММИРОВАНИЯ С Что должен знать претендент на вакансию где требуют базовые знания языка C#? |
Модератор
|
||||||
17.09.2012, 14:57 | 2 | |||||
Не рискну причислить себя к знатокам, но попробую ответить.
Символ - это сущность, которая должна иметь свойства. Каждому символу Лиспа соответствует область памяти - т.н. информационная ячейка. Эта ячейка имеет поля, в которых хранятся ссылки на: имя символа; определяющее выражение (если символ есть имя функции); значение символа; указатель на список свойств При этом: "символ" - это не буква или знак, а последовательность знаков; имя символа может храниться по-разному (в частности, если имя длинное - в виде списка); список свойств может отсутствовать. Вот небольшой пример:
0
|
17.09.2012, 15:52 [ТС] | 3 |
спасибо, хоть это и имеется частично в литературе, а вот этот ньюанс как-то заувалирован там, в литературе:
Добавлено через 33 минуты вообще что может включать в себя расширяемый список свойств? что можно добавить? список свойств вроде уже открыт в помощи по HomeLisp. а вот что можно добавлять? можно-ли делать расширение или редактирование списка свойств атома при исполнении программы?
0
|
Модератор
|
|||||||||||
17.09.2012, 17:32 | 4 | ||||||||||
Про списки свойств могу рассказать применительно к HomeLisp. У символа может быть в наличии список свойств. Этот список создает и использует программист. Структура списка может быть, в принципе, произвольной. В документации спискам свойств посвящен соотв. раздел.
Если кратко, то в списке свойст могут быть стандартные индикаторы FIXED, FLOAT, STRING и т.д., а также индикаторы, создаваемые пользователем. Вот пример из финского двухтомника:
В HomeLisp-e целый ряд объектов использует списки свойств. Например, графические окна имеют списки свойств, содержащие размеры, цвет фона и заголовок:
Примерно так...
1
|
17.09.2012, 18:41 [ТС] | 5 |
спс. а как насчёт определения объекта по свойствам? извиняюсь, конечно, что недочитал до нужного места ни помощь, ни книгу. в помощи вроде нет таких операций с свойствами. или это было бы похоже больше на пролог? в прологе вроде есть такое, но он мне не интересен по сути
0
|
17.09.2012, 19:03 [ТС] | 7 |
например объекту ягода заданы индикаторы: вещество мякоть , цвет красный, вкус кислый, другой объект, сок, имеет индикаторы: вещество отжатый, цвет красный, вкус кислый. можно ли введя ряд индикаторов определить какому объекту они принадлежат?
0
|
Модератор
|
||||||
17.09.2012, 19:18 | 8 | |||||
Думаю, что в общем случае - нельзя. Ведь один и тот же цвет может быть у разных ягод (клубника, малина и клюква красные). Другое дело, что если есть список символов с какими-либо свойствами, то совсем нетрудно написать функцию, которая отфильтрует нужные. Вот функция, которая берет на вход произвольный список и атом-индикатор. Функция возвращает список только тех элементов, у которых в списке свойств присутствует заданный индикатор:
1
|
17.09.2012, 23:30 [ТС] | 9 |
иными словами, функций базы сетевых данных в языке не заложено. ясно. спс.
Добавлено через 7 минут это с отрывка в википедии. можете что нибудь пояснить, что автор статьи мог излагать , имея их ввиду? просто тут интересный момент, раз он написал "представление каждого символа как узла многокоординатной символьной сети", то я боюсь что-то пропустить и возможно миновать более короткие пути написания кода Добавлено через 21 минуту то есть вроде бы, есть символы, они связаны между собой в сеть (с координатами автор статьи и уровнями перебрал, уровни и координаты само собой разумеются если это сеть, а если не сеть-значит это либо таблица, либо многомерный массив). если есть сеть символов, значит это всё-таки несёт в себе функции базы сетевых данных. Добавлено через 13 минут ну тоже что-то
0
|
Модератор
|
|||||||||||
19.09.2012, 10:30 | 12 | ||||||||||
Для тех же, что и списки... Точечная нотация описывает более широкий класс данных, нежели список. Но списки используются чаще, т.к. списочная запись короче (лаконичнее). Сравните:
Точечная пара отличается от двухатомного списка лишним Nil:
0
|
Модератор
|
|
19.09.2012, 13:33 | 14 |
- в оперативной памяти. Вот здесь расположен раздел документации, описывающий внутреннее строение структур Лиспа. Кратко: в памяти выделяются две области: область информационных ячеек атомов и область списочной памяти. Списочная память разбита на 64-битные ячейки. Каждая хранит два указателя A-указатель и D-указатель. В свою очередь, эти указатели могут указывать на другие списочные ячейки или на инф. ячейки атомов. На миниатюре приведена иллюстрация.
0
|
2 / 2 / 0
Регистрация: 25.07.2012
Сообщений: 34
|
|
01.10.2012, 01:13 | 18 |
вы когда смотрите на яблоко, вы уверены что вы смотрите на яблоко? по каким признакам вы опередили что это яблоко?
0
|
06.10.2012, 19:16 [ТС] | 20 |
вопрос. вот в обычных языках программирования, допустим, объявляем переменную е(к), то есть впринципе мы создаём одномерный массив, без явного объявления такового. то есть е(к), при к=5, равно 10, и т.д. двумерный массив е(к)(т). а как это реализовывается в лиспе, когда нам в конечном счёте не известно максимальное значение к и т, и собственно знать нам его не надо-нам важен результат: е(к)(т)? и в чём конечная цель лисповского вида реализации, однозначно-же:вид реализации должен быть подходящим для каких-то сопутствующих процессов поставленных юзером?
Добавлено через 25 минут просто на самом деле, тяжеловато всё читается, когда знаком с элементарными языками, вроде читаешь листинг-всё понятно, а вещи которые не описаны в листингах, но являются в большинстве программ необходимыми отсутствуют, и представить себе их реализацию, без полного знания языка, трудновато.
0
|
06.10.2012, 19:16 | |
06.10.2012, 19:16 | |
Помогаю со студенческими работами здесь
20
О жизнеспособности языка Lisp Лямбда выражениями и функциями языка Lisp Определить с использованием языка LISP генератор случайных чисел Написать макрос-тест, проверяющий пользователя на знание математических функций языка lisp Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |