Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Reduce (computer algebra system)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Programming paradigms == REDUCE's user-level language supports several [[Programming paradigm|programming paradigms]], as illustrated in the [[#Algebraic programming examples|algebraic programming examples]] below. Since it is based on Lisp, which is a [[functional programming]] language, REDUCE supports functional programming and all statements have values (although they are not always useful). REDUCE also supports [[procedural programming]] by ignoring statement values. Algebraic computation usually proceeds by transforming a mathematical expression into an equivalent but different form. This is called ''simplification'', even though the result might be much longer. (The name ''REDUCE'' is a [[pun]] on this problem of ''intermediate expression swell''!) In REDUCE, simplification occurs automatically when an expression is entered or computed, controlled by ''simplification rules'' and ''switches''. In this way, REDUCE supports [[Rule-based system|rule-based programming]], which is the classic REDUCE programming paradigm. In early versions of REDUCE, rules and switches could only be set globally, but modern REDUCE also supports local setting of rules and switches, meaning that they control the simplification of only one expression. REDUCE programs often contain a mix of programming paradigms.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)