Scheme (programming language): Difference between revisions

Content deleted Content added
Ap (talk | contribs)
mNo edit summary
No edit summary
Line 15:
Thanks to its [[macro]] facilities, Scheme can be adapted to any problem ___domain. They can even be used to add support for [[object-oriented programming]]. Scheme provides a [[hygienic macros|hygienic macro]] system, which while not quite as powerful as [[Common Lisp programming language|Common Lisp]]'s macros, is much safer and often easier to work with.
 
Scheme encourages [[functional programming]]. Pure functional programs need no global variables and don't have side-effects, and are therefore automatically [[thread-safe]], automatically verifyableverifiable and have more of these nice properties. However, Scheme also supports [[variable assignment]] and for those who want it.
 
In Scheme, functions are first class citizens. This means they can be passed as arguments to another function or stored in a variable and manipulated. This allows higher order functions that can further abstract program logic. Functions can also be created anonymously.