File: recursion.scad

package info (click to toggle)
openscad 2015.03-2%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 30,804 kB
  • ctags: 5,692
  • sloc: cpp: 39,386; sh: 3,856; ansic: 3,674; python: 1,393; yacc: 496; lex: 272; lisp: 159; makefile: 67; xml: 60
file content (25 lines) | stat: -rw-r--r-- 1,131 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// recursionscad:  Basic recursion example 

// Recursive functions are very powerful for calculating values.
// A good number of algorithms make use of recursive definitions,
// e.g the caluclation of the factorial of a number.
// The ternary operator " ? : " is the easiest way to define the
// termination condition.
// Note how the following simple implementation will never terminate
// when called with a negative value. This will produce an error after
// some time when OpenSCAD detects the endless recursive call.
function factorial(n) = n == 0 ? 1 : factorial(n - 1) * n;

color("cyan") text(str("6! = ", factorial(6)), halign = "center");

echo(version=version());
// Written in 2015 by Torsten Paul <Torsten.Paul@gmx.de>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.