Friday, May 3, 2019

Generalized list processing

Lisp is commonly characterized by list processing, as lists are the fundamental data structure of Lisp. Generalizations of lists can be formed by equivalence classes to get sets, multisets, and related structures which are essentially just lists with certain amount of the ordering removed. A generalized Lisp programming language can deal with these other list-like structures such as sets and multisets (sets are even introduced in Clojure) which is especially important as sets are typically used as the foundation of mathematics. Generalized list processing deals with sets, multisets, lists, and related structures.

It can be seen that most programming in general is largely List processing, and this fact is best realized in Lisp dialects. There are some programming languages which take the associative array or some equivalent as the fundamental structure and these languages and others so commonly used do not get people to realize the truth of List processing. Lisp isn't just about homoiconity but also its choice of data structures. It just happens that it chose the type of data structure most suited for defining programs. To deal with the problem of associative arrays, I will instead reduce them to binary relations which are lists of pairs, which will be an important part of our ontology.

No comments:

Post a Comment