Pascal's triangle: Difference between revisions

Line 818:
 
=={{header|Scheme}}==
{{Works with|Scheme|R<math>^5</math>RS}}
<lang scheme>
<lang scheme>(define (pascalsnext-row E Rrow)
(define (pascals rows) ;; solves Pascals Triangle up to a user given row.
(map + (append (list 0) row) (append row (list 0))))
(define (pascals-element element row)
;; Solves for a single element in a given row.
(cond
((< row element) 0)
((= 1 element) 1)
((= row element) 1)
((and (< 1 element) (> row element)) (+ (pascals-element element (- row 1)) (pascals-element (- element 1) (- row 1))))))
(define (pascals-row E R)
;; Solves an entire row.
(do ((E R (- E 1)))
((< E 1))
(display (pascals-element E R))
(display " ")))
(do ((N 1 (+ N 1)))
((< rows N))
(if (void? (pascals-row N N))
(newline)
((display (pascals-row N N))))))
</lang>
 
(define (triangle row rows)
Outputs:
(if ((<= rows N)0)
<pre>
(condlist)
1
(cons row (triangle (next-row row) (- rows 1)))))
1 1
 
1 2 1
(display (triangle (list 1) 5))
1 3 3 1
(newline)</lang>
1 4 6 4 1
Output:
</pre>
<lang>((1) (1 1) (1 2 1) (1 3 3 1) (1 4 6 4 1))</lang>
 
=={{header|Seed7}}==
Anonymous user