*Class и class

Sergey ShishkinSergey Shishkin
2 min read

*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. Классы, типы … или, в принципе, ни то и ни другое … то есть все есть типы и все можно классифицировать в иерархические категории … и что есть наследование.

0
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

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