*Class и class

*Class - глобальная переменная, содержащая текущий класс.
class - определяет sym
как класс с суперклассом(ами) typ
. В качестве побочного эффекта глобальная переменная *Class устанавливается в obj
.
https://picolisp.tiddlyhost.com/#class
: (class +Test)
-> +Test
: *Class
-> +Test
: (class +A +B +C +D)
-> +A
: +A
-> (+B +C +D)
: (dm foo> (X) (bar X))
-> foo>
: +A
-> ((foo> (X) (bar X)) +B +C +D)
Здесь уже минимум три поста было посвящено теме ООП. Здесь, здесь и здесь. И как минимум ещё пару раз обязательно будет обращение к этой теме в связи с символом, обозначающим объект и, собственно, самой концепции, не говоря уже о концепции ORMS.
Я, например, до сих пор не могу определиться в необходимости классов. С одной стороны, особенно в контексте реализации графического интерфейса, кажется, что это естественно и как же быть без иерархии … чего … в принципе, только методов, которые как, например, в Golang, можно организовывать в коллекции … хотя под давлением “общественности“ классы проникли и туда, как впрочем в том же JavaScript, который изначально был исключительно прототипированным и неплохо справлялся с графическим дизайном … а вот такой замечательный проект как Self, до сих пор остается концептуально чистым с точки зрения прототипирования. Короче, ещё есть над чем подумать и, в частности, глубже оценить реализацию объектной модели в PicoLisp. Классы, типы … или, в принципе, ни то и ни другое … то есть все есть типы и все можно классифицировать в иерархические категории … и что есть наследование.
Subscribe to my newsletter
Read articles from Sergey Shishkin directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Sergey Shishkin
Sergey Shishkin
Всегда чему-то учусь!