object

Sergey ShishkinSergey Shishkin
2 min read

Лексема “объект” используется в контексте “базы данных” - “объекты базы данных”, с другой стороны, база данных определяется как список символов, которые, в свою очередь, являются списком свойств, то есть по структуре, и то, и другое - “ассоциативный массив” … вот такой вот получается “общий лисп“ … “список пар“ ... В отлие от символа, объект принимает и отсылает сообщения, а также имеет методы … то есть, является специфичным символом, еще одним типом символа … типом “внешнего символа” … а вот интересно, может ли быть объект “транзитивным“?

object - определяет sym как объект со значением (или типом) any. Список свойств инициализируется всеми опционально предоставленными парами “ключ-значение”.

(object 'sym 'any ['sym2 'any2 ..]) -> obj

: (object 'Obj '(+A +B +C) 'a 1 'b 2 'c 3)
-> Obj
: (show 'Obj)
Obj (+A +B +C)
   c 3
   b 2
   a 1
-> Obj

obj - находит или создает объект базы данных и инициализирует дополнительные свойства с помощью аргументов varN и valN. В первой форме вызывается запрос (typ sym [hook] val ..), тогда как вторая форма использует кэш для сохранения объектов без уникальных +Keys путем индексации *ObjIdx с аргументом any.

(obj (typ sym [hook] val ..) [var1 val1 ..]) -> obj

(obj typ any [var1 val1 ..]) -> obj

: (obj ((+Item) nr 2) nm "Spare Part" sup `(db 'nr '+CuSu 2) inv 100 pr 1250)
-> {B2}

*ObjIdx - содержит дерево idx объектов, созданных obj.

https://picolisp.tiddlyhost.com/#object

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

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