Bergervei/Logo-Rekursionen

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Logo</language>
<code id="600746c18b296">
to prod :a :b
 ifelse :b = 0 
  [op 0] 
  [op :a + prod :a :b - 1]
end
</code>

<run id="600746c18b435">
print prod 11 12
</run>

<code id="600746c18b318">
to fak :n
 ifelse :n = 0 
  [op 1] 
  [op :n * fak :n - 1]
end
</code>

<run id="600746c18b489">
print fak 10
</run>

<code id="600746c18b374">
to fibo :n
 ifelse :n = 1 
  [op 1] 
  [ifelse :n = 2 
   [op 1] 
   [op ((fibo :n - 1) + (fibo :n - 2))]]    
end

to fibolist :n
 ifelse :n = 0 
  [op []] 
  [op fput fibo :n fibolist :n - 1]
end
</code>

<run id="600746c18b4db">
print fibolist 20
</run>

<code id="600746c18b3ce">
to primtest :m :n
 ifelse :n = 1 
  [op "true] 
  [ifelse (remainder :m :n) = 0 
   [op "false]
   [op primtest :m :n - 1]]
end

to prim :n
 ifelse :n = 1
  [op "false]
  [op primtest :n :n - 1]
end

to primlist :n
 ifelse :n = 0
  [op []] 
  [ifelse (prim :n) = "true 
   [op fput :n primlist :n - 1] 
   [op primlist :n - 1]]
end
</code>

<run id="600746c18b52c">
print primlist 100
</run>