Sample
(def L#ADDLINE ()
(= pDb (HostApplicationServices.WorkingDatabase))
(= tm (.TransactionManager pDb))
(= tr (.StartTransaction tm))
(= id (SymbolUtilityServices.GetBlockModelSpaceId pDb))
(= mode (OpenMode.ForWrite))
(= blockTableRecord (.GetObject tr id mode))
(= line (new "Line" (new "Point3d" 0 0 0) (new "Point3d" 100 100 0)))
(= id2 (.AppendEntity blockTableRecord line))
(.AddNewlyCreatedDBObject tr line true)
(.Commit tr)
(.Dispose tr)
id2
)
Not terribly thrilled with that syntax, not at all.
(= var value) for assignment makes no sense to
LISP programmers for whom (setq) or (setf) are
second nature. If following more strictly, Common
LISP conventions, it would be (setf) that is used
to set properties of an object, but which form
the accessor should take seems to be the subject
of much debate.
The fact that they ended up with this contortion
(I'll call it 'LISP from hell'), which looks like it's just
a big ugly hack, largely out of sheer convenience,
pretty much seals the fate of L#.
My guess is that most hard-core LISPers would
have no part of it.