Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
6 / 6 / 1
Регистрация: 04.01.2017
Сообщений: 465
1

Создание объекта с методами используя свойства символов

16.12.2018, 19:36. Показов 1155. Ответов 3

Author24 — интернет-сервис помощи студентам
Здравствуйте!

Подскажите пожалуйста, как используя свойства символов можно создать объект с методами?
Есть задача:
Используя свойства символов, опишите объект-прямоугольник со свойствами ширина, высота и методами площадь и периметр.

Как описать свойства понятно:
Lisp
1
2
(putprop 'renctangl 'width 10)
(putprop 'renctangl 'height 5)
Но как описать методы у renctangl?
Мы можем как-то вместо конкретного значение поместить в свойство метод? Если да, то покажите пожалуйста как.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2018, 19:36
Ответы с готовыми решениями:

Создание объекта методами ООП
Методами объектно-ориентированного программирования описать графический объект (на рисунке) как...

Как получить свойства объекта Excel UserForm, используя JS/VBS?
Здравствуйте, у меня возникла такая задача: необходимо написать скрипт, в качестве параметров...

Создание копии объекта используя объявление через указатель
Здравствуйте. Имеется такой код: #include <iostream> #include <cstring> using namespace std; ...

Создать Generic Mapper, который будет мапить схожие свойства одного объекта в свойства другого
Нужно создать generic mapper, который будет мапить схожие(similar) свойства одного объекта в...

3
Модератор
Эксперт функциональных языков программированияЭксперт Python
36606 / 20334 / 4221
Регистрация: 12.02.2012
Сообщений: 33,651
Записей в блоге: 13
17.12.2018, 09:04 2
Цитата Сообщение от Vlad__i__mir Посмотреть сообщение
Мы можем как-то вместо конкретного значение поместить в свойство метод?
- для этого существуют лямбда-выражения...

Добавлено через 15 минут
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
;; Создание объекта
 
(defun make-rect (r w h)
  (putprop r 'width w)
  (putprop r 'height h)
  (putprop r 'area (lambda (obj) (* (getprop obj 'width) (getprop obj 'height))))) 
 
==> MAKE-RECT
 
(make-rect 'r1 20 10) ;; r1 - прямоугольник
==> R1
 
(make-rect 'r2 10 10) ;; r2 - прямоугольник
==> R2
 
(funcall (getprop 'r1 'area) 'r1)  ;; вызов метода
==> 200
 
(funcall (getprop 'r2 'area) 'r2) ;; вызов метода
==> 100
1
6 / 6 / 1
Регистрация: 04.01.2017
Сообщений: 465
17.12.2018, 16:29  [ТС] 3
Цитата Сообщение от Catstail Посмотреть сообщение
- для этого существуют лямбда-выражения...
Спасибо!
Ругается на функцию getprop, видать опять версия лиспа какая-то не такая:
Lisp
1
2
3
4
> (make-rect 'r1 20 10)             
PERIM                               
> (funcall (getprop 'r1 'area) 'r1) 
error: unbound function - GETPROP
Существует ли её аналог?
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36606 / 20334 / 4221
Регистрация: 12.02.2012
Сообщений: 33,651
Записей в блоге: 13
17.12.2018, 16:46 4
Лучший ответ Сообщение было отмечено Vlad__i__mir как решение

Решение

Lisp
1
2
3
4
5
6
7
8
9
10
(defun make-rect (r w h)
  (setf (get r 'width) w)
  (setf (get r 'height) h)
  (setf (get r 'area) (lambda (obj) (* (get obj 'width) (get obj 'height))))) 
 
(make-rect 'r1 20 30)
 
(print (funcall (get 'r1 'area) 'r1))
 
==> 600
https://ideone.com/0oVHsu
1
17.12.2018, 16:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2018, 16:46
Помогаю со студенческими работами здесь

Binding свойства объекта в combobox к свойству другого объекта :)
Всем привет)) У меня есть WPF приложение на котором расположен ComboBox с объектами этого класа ...

Получение данных объекта методами get
Не могу разобраться с простым вопросом. Работаю в Intellij Idea. Когда я создаю 2 объекта одного...

Обновление объекта со static методами на удалённом сервере
Не могу обновить объект со static методами на удалённом сервере www.mycgiserver.com. Перезапись...

Свойства объекта
Всем привет! Как узнать какое-нибудь свойство какого-нибудь класса? Например, у меня есть класс...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru