The message-oo Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The message-oo Reference Manual

This is the message-oo Reference Manual, version 0.9.2, generated automatically by Declt version 2.4 "Will Decker" on Wed Jun 20 12:15:58 2018 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

Message OO

This package gives you the great opportunity of real object-oriented programming.

For example, you may write

(use-package :message-oo)

(defmessage list (:add item) (append list (list item)))
(defmessage list (:map func) (mapcar func list))
(defmessage list (:reduce func) (reduce func list))
(defmessage number (:+ number2 &rest numbers) 
   (apply '+ number number2 numbers))

(@ nil
   (:add 1)
   (:add 2)
   (:add 3)
   (:map (@ '(:+ 3) :fn))
   (reduce #'+)) => 15

You may think of last command as nil.add(1).add(2).add(3).map(..).reduce(...)

Every next step is applied to the result of previous as in UNIX shell pipeline.

Enjoy!


Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 message-oo

Author

Roman Klochkov <kalimehtar@mail.ru>

License

BSD

Description

Message-passing Smalltalk-style object system

Version

0.9.2

Source

message-oo.asd (file)

Components

Next: , Previous: , Up: Top   [Contents][Index]

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.1 message-oo.asd

Location

message-oo.asd

Systems

message-oo (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.2 message-oo/package.lisp

Parent

message-oo (system)

Location

package.lisp

Packages

Previous: , Up: Lisp files   [Contents][Index]

3.1.3 message-oo/src.lisp

Dependency

package.lisp (file)

Parent

message-oo (system)

Location

src.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

4 Packages

Packages are listed by definition order.


Next: , Previous: , Up: Packages   [Contents][Index]

4.1 message-oo.mangle

Source

package.lisp (file)

Internal Definitions

Previous: , Up: Packages   [Contents][Index]

4.2 message-oo

Source

package.lisp (file)

Use List

common-lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Exported definitions


Previous: , Up: Exported definitions   [Contents][Index]

5.1.1 Macros

Macro: @ OBJECT MESSAGE &rest MORE-MESSAGES

Enables message pipelines
(@ l (:map (lambda (x) (process x)))) == (mapcar ...) (@ l (:map func) (:reduce #’+)) == (reduce (mapcar ..))

Package

message-oo

Source

src.lisp (file)

Macro: defmessage CLASS-LIST MESSAGE-LIST &body BODY

It is smalltalk-like:
(defmessage container (:add item :after old-item) (container-add-after container item old-item))

Package

message-oo

Source

src.lisp (file)


Previous: , Up: Definitions   [Contents][Index]

5.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.1 Special variables

Special Variable: +mangle+
Package

message-oo

Source

src.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.2 Functions

Function: find-message MESSAGE
Package

message-oo

Source

src.lisp (file)

Function: for-generic METHOD-PARAMS
Package

message-oo

Source

src.lisp (file)

Function: method-name MESSAGE-LIST

(:add item) -> message-oo.mangle:|ADD:|
(:add item :at pos) -> message-oo.mangle:|ADD:AT:|
:add -> message-oo.mangle:add
(:add item &rest rest) -> message-oo.mangle:|ADD::|
(:add item :at pos &rest rest) -> message-oo.mangle:|ADD:AT::|

Package

message-oo

Source

src.lisp (file)

Function: method-params MESSAGE-LIST
Package

message-oo

Source

src.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.3 Generic functions

Generic Function: fn OBJECT
Package

message-oo.mangle

Source

src.lisp (file)

Methods
Method: fn (LIST list)

Returns function that can be applied to object
Example (mapcar (@ ’(:+ 3) :fn) (list 1 2 3 4)) => ’(4 5 6 7)

Generic Function: generic OBJECT
Package

message-oo.mangle

Source

src.lisp (file)

Methods
Method: generic (LIST list)
Generic Function: tap: OBJECT FUNC
Package

message-oo.mangle

Source

src.lisp (file)

Methods
Method: tap: ANY FUNC

For debugging like in
(@ obj (:message1 ...) (:message2 ...) (:tap (lambda (x) (print x))) (:message3 ...))


Previous: , Up: Internal definitions   [Contents][Index]

5.2.4 Conditions

Condition: bad-message ()
Package

message-oo

Source

src.lisp (file)

Direct superclasses

error (condition)

Direct slots
Slot: message
Initargs

message-oo::message


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   F   L   M  
Index Entry  Section

F
File, Lisp, message-oo.asd: The message-oo<dot>asd file
File, Lisp, message-oo/package.lisp: The message-oo/package<dot>lisp file
File, Lisp, message-oo/src.lisp: The message-oo/src<dot>lisp file

L
Lisp File, message-oo.asd: The message-oo<dot>asd file
Lisp File, message-oo/package.lisp: The message-oo/package<dot>lisp file
Lisp File, message-oo/src.lisp: The message-oo/src<dot>lisp file

M
message-oo.asd: The message-oo<dot>asd file
message-oo/package.lisp: The message-oo/package<dot>lisp file
message-oo/src.lisp: The message-oo/src<dot>lisp file

Jump to:   F   L   M  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   @  
D   F   G   M   T  
Index Entry  Section

@
@: Exported macros

D
defmessage: Exported macros

F
find-message: Internal functions
fn: Internal generic functions
fn: Internal generic functions
for-generic: Internal functions
Function, find-message: Internal functions
Function, for-generic: Internal functions
Function, method-name: Internal functions
Function, method-params: Internal functions

G
generic: Internal generic functions
generic: Internal generic functions
Generic Function, fn: Internal generic functions
Generic Function, generic: Internal generic functions
Generic Function, tap:: Internal generic functions

M
Macro, @: Exported macros
Macro, defmessage: Exported macros
Method, fn: Internal generic functions
Method, generic: Internal generic functions
Method, tap:: Internal generic functions
method-name: Internal functions
method-params: Internal functions

T
tap:: Internal generic functions
tap:: Internal generic functions

Jump to:   @  
D   F   G   M   T  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   +  
M   S  
Index Entry  Section

+
+mangle+: Internal special variables

M
message: Internal conditions

S
Slot, message: Internal conditions
Special Variable, +mangle+: Internal special variables

Jump to:   +  
M   S  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   B   C   M   P   S  
Index Entry  Section

B
bad-message: Internal conditions

C
Condition, bad-message: Internal conditions

M
message-oo: The message-oo system
message-oo: The message-oo package
message-oo.mangle: The message-oo<dot>mangle package

P
Package, message-oo: The message-oo package
Package, message-oo.mangle: The message-oo<dot>mangle package

S
System, message-oo: The message-oo system

Jump to:   B   C   M   P   S