sicp/zapiski/g1smo/1_1_zapiski_vaje.html

854 lines
65 KiB
HTML
Raw Permalink Normal View History

2024-05-29 21:56:50 +02:00
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2024-05-29 sre 21:56 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Zapiski #1 srečanja programerskega bralnega krožka SICP</title>
<meta name="author" content="Jurij" />
<meta name="generator" content="Org Mode" />
<style>
#content { max-width: 60em; margin: auto; }
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
pre {
border: 1px solid #e6e6e6;
border-radius: 3px;
background-color: #f2f2f2;
padding: 8pt;
font-family: monospace;
overflow: auto;
margin: 1.2em;
}
pre.src {
position: relative;
overflow: auto;
}
pre.src:before {
display: none;
position: absolute;
top: -8px;
right: 12px;
padding: 3px;
color: #555;
background-color: #f2f2f299;
}
pre.src:hover:before { display: inline; margin-top: 14px;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-authinfo::before { content: 'Authinfo'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
.equation-container {
display: table;
text-align: center;
width: 100%;
}
.equation {
vertical-align: middle;
}
.equation-label {
display: table-cell;
text-align: right;
vertical-align: middle;
}
.inlinetask {
padding: 10px;
border: 2px solid gray;
margin: 10px;
background: #ffffcc;
}
#org-div-home-and-up
{ text-align: right; font-size: 70%; white-space: nowrap; }
textarea { overflow-x: auto; }
.linenr { font-size: smaller }
.code-highlighted { background-color: #ffff00; }
.org-info-js_info-navigation { border-style: none; }
#org-info-js_console-label
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { }
</style>
<script>
window.MathJax = {
tex: {
ams: {
multlineWidth: '85%'
},
tags: 'ams',
tagSide: 'right',
tagIndent: '.8em'
},
chtml: {
scale: 1.0,
displayAlign: 'center',
displayIndent: '0em'
},
svg: {
scale: 1.0,
displayAlign: 'center',
displayIndent: '0em'
},
output: {
font: 'mathjax-modern',
displayOverflow: 'overflow'
}
};
</script>
<script
id="MathJax-script"
async
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js">
</script>
</head>
<body>
<div id="content" class="content">
<h1 class="title">Zapiski #1 srečanja programerskega bralnega krožka SICP</h1>
<div id="outline-container-org6c75ca4" class="outline-2">
<h2 id="org6c75ca4">Zanimivi izseki</h2>
<div class="outline-text-2" id="text-org6c75ca4">
</div>
<div id="outline-container-org5cec0f2" class="outline-3">
<h3 id="org5cec0f2">str. 9</h3>
<div class="outline-text-3" id="text-org5cec0f2">
<blockquote>
<p>
Every reader should ask himself periodically "Toward what end, toward what end?" — but do not ask it too often lest you pass up the fun of programming for the constipation of bittersweet philosophy.
</p>
</blockquote>
<blockquote>
<p>
Lisp is a survivor, having been in use for about a quarter of a century.
</p>
</blockquote>
</div>
</div>
<div id="outline-container-org4adf256" class="outline-3">
<h3 id="org4adf256">str. 11</h3>
<div class="outline-text-3" id="text-org4adf256">
<blockquote>
<p>
It is better to have 100 functions operate on one data structure than to have 10 functions operate on 10 data structures.
</p>
</blockquote>
</div>
</div>
<div id="outline-container-org22673ad" class="outline-3">
<h3 id="org22673ad">str. 18</h3>
<div class="outline-text-3" id="text-org22673ad">
<blockquote>
<p>
Thus, programs must be written for people to read, and only incidentally for machines to execute.
</p>
</blockquote>
</div>
</div>
<div id="outline-container-orgdb0b647" class="outline-3">
<h3 id="orgdb0b647">str. 19</h3>
<div class="outline-text-3" id="text-orgdb0b647">
<blockquote>
<p>
Underlying our approach to this subject is our conviction that "computer science" is not a science and that its significance has little to do with computers.
</p>
</blockquote>
</div>
</div>
<div id="outline-container-org0baccf7" class="outline-3">
<h3 id="org0baccf7">str. 27</h3>
<div class="outline-text-3" id="text-org0baccf7">
<blockquote>
<p>
Finally, we would like to acknowledge the support of the organizations that have encouraged this work over the years, including support from Hewlett-Packard, made possible by Ira Goldstein and Joel Birnbaum, and support from DARPA, made possible by Bob Kahn.
</p>
</blockquote>
<p>
Bob Kahn je mdr. soavtor protokolov TCP in IP, pionir omreževanja. V DARPA postal kasneje direktor IPTO (Informational Processing Techniques Office), kjer je ustanovil milijardo-dolarski projekt Strategic Copmuting Initiative, največjo investicijo ameriške federalne vlade v računalništvo ever ('83 do '93) - razvijali so proizvodnjo čipov in umetne inteligence. Ustrašili so se japoncev, podobno kot v 50ih sovjetov.
</p>
<p>
Po DARPA ustanovil CNRI (corporation for national research initiatives), neprofitno organizacijo kjer je delal tudi guido van rossum (avtor pythona). Tam so izdali python verzije 1.3 do 1.6 ter GNU mailman.
</p>
<p>
Preko očeta v sorodu s fizikom Hermanom Kahnom, ki je napisal knjigo o tem kako bi amerika lahko zmagala nuklearno vojno in postal inspiracija za dr. Strangelove-a v znanem Kubrickovem filmu. Ustanovil je Hudson institut, konzervativni think tank ki je začel pri premišljevanju hladnovojnih scenarijev in se razširil na polja ekonomije, zdravstva, šolstva in gemblanja. Delal je tudi v RAND korporaciji, močnem hladnovojnem inštitutu, vpletenem v vietnamsko vojno, iraško vojno, danes pa kuri "AI apokaliptični" scenarij.
</p>
</div>
</div>
<div id="outline-container-orgc817fbe" class="outline-3">
<h3 id="orgc817fbe">str. 77</h3>
<div class="outline-text-3" id="text-orgc817fbe">
<p>
Stoy 1977
</p>
</div>
</div>
</div>
<div id="outline-container-orge562901" class="outline-2">
<h2 id="orge562901">Vaje</h2>
<div class="outline-text-2" id="text-orge562901">
</div>
<div id="outline-container-org6035a65" class="outline-3">
<h3 id="org6035a65">1.1 Kaj vrnejo izrazi?</h3>
<div class="outline-text-3" id="text-org6035a65">
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span>+ 5 3 4<span style="color: #458588;">)</span>
</pre>
</div>
<p>
10
</p>
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span>- 9 1<span style="color: #458588;">)</span>
</pre>
</div>
<p>
8
</p>
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span>/ 6 2<span style="color: #458588;">)</span>
</pre>
</div>
<p>
3
</p>
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span>+ <span style="color: #b16286;">(</span>* 2 4<span style="color: #b16286;">)</span> <span style="color: #b16286;">(</span>- 4 6<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
</pre>
</div>
<p>
6
</p>
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #9d0006;">define</span> <span style="color: #b57614;">a</span> 3<span style="color: #458588;">)</span>
</pre>
</div>
<p>
#nil
</p>
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #9d0006;">define</span> <span style="color: #b57614;">b</span> <span style="color: #b16286;">(</span>+ a 1<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
</pre>
</div>
<p>
#nil
</p>
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span>+ a b <span style="color: #b16286;">(</span>* a b<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
</pre>
</div>
<p>
19
</p>
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span>= a b<span style="color: #458588;">)</span>
</pre>
</div>
<p>
#f
</p>
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #9d0006;">if</span> <span style="color: #b16286;">(</span><span style="color: #9d0006;">and</span> <span style="color: #8ec07c;">(</span>&gt; b a<span style="color: #8ec07c;">)</span> <span style="color: #8ec07c;">(</span>&lt; b <span style="color: #d65d0e;">(</span>* a b<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
b
a<span style="color: #458588;">)</span>
</pre>
</div>
<p>
4
</p>
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #9d0006;">cond</span> <span style="color: #b16286;">(</span><span style="color: #8ec07c;">(</span>= a 4<span style="color: #8ec07c;">)</span> 6<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #8ec07c;">(</span>= b 4<span style="color: #8ec07c;">)</span> <span style="color: #8ec07c;">(</span>+ 6 7 a<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #9d0006;">else</span> 25<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
</pre>
</div>
<p>
16
</p>
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span>+ 2 <span style="color: #b16286;">(</span><span style="color: #9d0006;">if</span> <span style="color: #8ec07c;">(</span>&gt; b a<span style="color: #8ec07c;">)</span> b a<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
</pre>
</div>
<p>
6
</p>
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span>* <span style="color: #b16286;">(</span><span style="color: #9d0006;">cond</span> <span style="color: #8ec07c;">(</span><span style="color: #d65d0e;">(</span>&gt; a b<span style="color: #d65d0e;">)</span> a<span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span><span style="color: #d65d0e;">(</span>&lt; a b<span style="color: #d65d0e;">)</span> b<span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span><span style="color: #9d0006;">else</span> -1<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>+ a 1<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
</pre>
</div>
<p>
16
</p>
</div>
</div>
<div id="outline-container-orga3d30b3" class="outline-3">
<h3 id="orga3d30b3">1.2 Pretvori izraz v prefix obliko</h3>
<div class="outline-text-3" id="text-orga3d30b3">
\begin{equation}
\frac{5+4+(2-(3-(6+\frac{4}{5}))) }{3(6-2)(2-7)}
\end{equation}
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span>/ <span style="color: #b16286;">(</span>+ 5 4
<span style="color: #8ec07c;">(</span>- 2
<span style="color: #d65d0e;">(</span>- 3
<span style="color: #458588;">(</span>+ 6
4/5<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>* 3
<span style="color: #8ec07c;">(</span>- 6 2<span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>- 2 7<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
</pre>
</div>
<pre class="example">
-37/150
</pre>
</div>
</div>
<div id="outline-container-org3889f6d" class="outline-3">
<h3 id="org3889f6d">1.3 določi postopek, ki prejme 3 števila kot argumente in vrne vsoto kvadratov večjih dveh</h3>
<div class="outline-text-3" id="text-org3889f6d">
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #9d0006;">define</span> <span style="color: #b16286;">(</span><span style="color: #b57614;">vsota-vecjih-kvadratov</span> a b c<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #9d0006;">cond</span> <span style="color: #8ec07c;">(</span><span style="color: #d65d0e;">(</span>&lt;= a b c<span style="color: #d65d0e;">)</span> <span style="color: #d65d0e;">(</span>+ <span style="color: #458588;">(</span>* b b<span style="color: #458588;">)</span> <span style="color: #458588;">(</span>* c c<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span><span style="color: #d65d0e;">(</span>&lt;= b a c<span style="color: #d65d0e;">)</span> <span style="color: #d65d0e;">(</span>+ <span style="color: #458588;">(</span>* a a<span style="color: #458588;">)</span> <span style="color: #458588;">(</span>* c c<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span><span style="color: #9d0006;">else</span> <span style="color: #d65d0e;">(</span>+ <span style="color: #458588;">(</span>* b b<span style="color: #458588;">)</span> <span style="color: #458588;">(</span>* a a<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #a89984;">;; </span><span style="color: #a89984;">^ NAROBE! &lt;= primerja vse tri stevilke, ne prvo z drugima dvema oz. ostalimi</span>
<span style="color: #458588;">(</span><span style="color: #9d0006;">define</span> <span style="color: #b16286;">(</span><span style="color: #b57614;">+kvadrat</span> a b<span style="color: #b16286;">)</span> <span style="color: #b16286;">(</span>+ <span style="color: #8ec07c;">(</span>* a a<span style="color: #8ec07c;">)</span> <span style="color: #8ec07c;">(</span>* b b<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #9d0006;">define</span> <span style="color: #b16286;">(</span><span style="color: #b57614;">vsota-vecjih-kvadratov2</span> a b c<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #9d0006;">if</span> <span style="color: #8ec07c;">(</span>&gt;= a b<span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span><span style="color: #9d0006;">if</span> <span style="color: #d65d0e;">(</span>&gt;= b c<span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span>+kvadrat a b<span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span>+kvadrat a c<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span><span style="color: #9d0006;">if</span> <span style="color: #d65d0e;">(</span>&gt;= a c<span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span>+kvadrat a b<span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span>+kvadrat b c<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>list
'<span style="color: #b16286;">(</span><span style="color: #79740e;">"Pri&#269;akovano"</span> 85 41 164 89<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>list <span style="color: #79740e;">"Funkcija1"</span>
<span style="color: #8ec07c;">(</span>vsota-vecjih-kvadratov 6 1 7<span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>vsota-vecjih-kvadratov 3 4 5<span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>vsota-vecjih-kvadratov 8 10 2<span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>vsota-vecjih-kvadratov 3 8 5<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>list <span style="color: #79740e;">"Funkcija2"</span>
<span style="color: #8ec07c;">(</span>vsota-vecjih-kvadratov2 6 1 7<span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>vsota-vecjih-kvadratov2 3 4 5<span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>vsota-vecjih-kvadratov2 8 10 2<span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>vsota-vecjih-kvadratov2 3 8 5<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
</pre>
</div>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-right" />
<col class="org-right" />
<col class="org-right" />
<col class="org-right" />
</colgroup>
<tbody>
<tr>
<td class="org-left">Pričakovano</td>
<td class="org-right">85</td>
<td class="org-right">41</td>
<td class="org-right">164</td>
<td class="org-right">89</td>
</tr>
<tr>
<td class="org-left">Funkcija1</td>
<td class="org-right">85</td>
<td class="org-right">41</td>
<td class="org-right">164</td>
<td class="org-right">73</td>
</tr>
<tr>
<td class="org-left">Funkcija2</td>
<td class="org-right">85</td>
<td class="org-right">41</td>
<td class="org-right">164</td>
<td class="org-right">89</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="outline-container-org3946afc" class="outline-3">
<h3 id="org3946afc">1.4 Opis procedure</h3>
<div class="outline-text-3" id="text-org3946afc">
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #9d0006;">define</span> <span style="color: #b16286;">(</span><span style="color: #b57614;">a-plus-abs-b</span> a b<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #8ec07c;">(</span><span style="color: #9d0006;">if</span> <span style="color: #d65d0e;">(</span>&gt; b 0<span style="color: #d65d0e;">)</span> + -<span style="color: #8ec07c;">)</span> a b<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
</pre>
</div>
<p>
Izraz <code>if</code> vrne funkcijo <code>+</code> ali <code>-</code> , glede na to, ali je argument <code>b</code> večji ali manjši od 0.
</p>
<p>
Če je <code>b</code> manjši od 0, ga odšteje od <code>a</code>, sicer pa ga prišeje. Zato je rezultat funkcije ekvivalenten vsoti <code>a</code> in absolutnega <code>b</code>.
</p>
</div>
</div>
<div id="outline-container-org4e9feb3" class="outline-3">
<h3 id="org4e9feb3">1.5 Aplikativni red in normalni red evalvacije</h3>
<div class="outline-text-3" id="text-org4e9feb3">
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #9d0006;">define</span> <span style="color: #b16286;">(</span><span style="color: #b57614;">p</span><span style="color: #b16286;">)</span> <span style="color: #b16286;">(</span>p<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #9d0006;">define</span> <span style="color: #b16286;">(</span><span style="color: #b57614;">test</span> x y<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #9d0006;">if</span> <span style="color: #8ec07c;">(</span>= x 0<span style="color: #8ec07c;">)</span>
0
y<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #a89984;">;; </span><span style="color: #a89984;">Evalvira:</span>
<span style="color: #458588;">(</span>test 0 <span style="color: #b16286;">(</span>p<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
</pre>
</div>
<p>
Če interpreter deluje po aplikativnem zaporedju, bo najprej evalviral argumente. Ker je drugi argument postopek, ki v neskončnost vrača vrednost klica samega sebe, se bo program zaciklal oz. zmrznil.
</p>
<p>
Če pa interpreter deluje po normalnem zaporedju, bo pa začel izvajat postopek pred evalvacijo argumentov, le-te pa šele ko jih potrebuje. Tako bo, <code>if</code> stavek prepoznal ekvivalenco <code>x</code> in <code>0</code> ter vrnil <code>0</code>.
</p>
<p>
Klic takšne funkcije torej preveri ali interpreter deluje po aplikativnem ali normalnem zaporedju.
Guile scheme deluje po aplikativnem redu (in se zacikla). Normalni red pa lahko "simuliramo", če proceduro definiramo kot macro, z <code>define-case</code>. Klic macroja se ne zacikla.
</p>
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #9d0006;">define-macro</span> <span style="color: #b16286;">(</span><span style="color: #076678;">test-m</span> x y<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #9d0006;">if</span> <span style="color: #8ec07c;">(</span>= x 0<span style="color: #8ec07c;">)</span>
0
y<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>test-m 0 <span style="color: #b16286;">(</span>p<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
</pre>
</div>
<pre class="example">
0
</pre>
</div>
</div>
<div id="outline-container-org9791637" class="outline-3">
<h3 id="org9791637">1.6 Novi if</h3>
<div class="outline-text-3" id="text-org9791637">
<p>
Imamo nov <code>if</code>, <code>new-if</code>.
</p>
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #9d0006;">define</span> <span style="color: #b16286;">(</span><span style="color: #b57614;">new-if</span> predicate then-clause else-clause<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #9d0006;">cond</span> <span style="color: #8ec07c;">(</span>predicate then-clause<span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span><span style="color: #9d0006;">else</span> else-clause<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
</pre>
</div>
<p>
Kaj se zgodi, če ga uporabimo za računanje kvadratnih korenov?
</p>
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #9d0006;">define</span> <span style="color: #b16286;">(</span><span style="color: #b57614;">sqrt-iter</span> guess x<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>new-if <span style="color: #8ec07c;">(</span>good-enough? guess x<span style="color: #8ec07c;">)</span>
guess
<span style="color: #8ec07c;">(</span>sqrt-iter <span style="color: #d65d0e;">(</span>improve guess x<span style="color: #d65d0e;">)</span>
x<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
</pre>
</div>
<p>
Navaden <code>if</code> je v bistvu makro in deluje po normalnem zaporedju. Ker je <code>new-if</code> definiran kot procedura, mora zaradi aplikativnega zaporedja najprej evalvirati argumente. Zato se zacikla oz. zamrzne.
</p>
</div>
</div>
<div id="outline-container-org0bb7889" class="outline-3">
<h3 id="org0bb7889">1.7 good-enough? ni dovolj dober?</h3>
<div class="outline-text-3" id="text-org0bb7889">
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #9d0006;">define</span> <span style="color: #b16286;">(</span><span style="color: #b57614;">average</span> x y<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>/ <span style="color: #8ec07c;">(</span>+ x y<span style="color: #8ec07c;">)</span> 2<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #9d0006;">define</span> <span style="color: #b16286;">(</span><span style="color: #b57614;">improve</span> guess x<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>average guess <span style="color: #8ec07c;">(</span>/ x guess<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #9d0006;">define</span> <span style="color: #b16286;">(</span><span style="color: #b57614;">good-enough?</span> guess x<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>&lt; <span style="color: #8ec07c;">(</span>abs <span style="color: #d65d0e;">(</span>- <span style="color: #458588;">(</span>square guess<span style="color: #458588;">)</span> x<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span> 0.001<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #9d0006;">define</span> <span style="color: #b16286;">(</span><span style="color: #b57614;">sqrt-iter</span> guess x<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #9d0006;">if</span> <span style="color: #8ec07c;">(</span>good-enough? guess x<span style="color: #8ec07c;">)</span>
guess
<span style="color: #8ec07c;">(</span>sqrt-iter <span style="color: #d65d0e;">(</span>improve guess x<span style="color: #d65d0e;">)</span>
x<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #9d0006;">define</span> <span style="color: #b16286;">(</span><span style="color: #b57614;">sqrt</span> x<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>sqrt-iter 1.0 x<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
</pre>
</div>
<p>
Pri premajhnih številih <code>good-enough?</code> prehitro "odneha" in dobimo slab približek, pri prevelikih številih pa "predolgo vztraja", saj ne potrebujemo tako natančnega približka. Boljša rešitev s precej elegance je, recimo, primerjava s promilom <code>x</code> namesto 0.001.
</p>
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #9d0006;">define</span> <span style="color: #b16286;">(</span><span style="color: #b57614;">good-enough?</span> guess x<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>&lt; <span style="color: #8ec07c;">(</span>abs <span style="color: #d65d0e;">(</span>- <span style="color: #458588;">(</span>square guess<span style="color: #458588;">)</span> x<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span> <span style="color: #8ec07c;">(</span>* 0.001 x<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org019423b" class="outline-3">
<h3 id="org019423b">1.8 kubični koren</h3>
<div class="outline-text-3" id="text-org019423b">
<p>
Formula za izboljšanje približka <code>y</code> kubičnemu korenu <code>x</code> je
</p>
\begin{equation}
\frac{x/y^{2}+2y}{3}
\end{equation}
<p>
Postopek: TODO
</p>
</div>
</div>
<div id="outline-container-org9849c85" class="outline-3">
<h3 id="org9849c85">1.10 Ackermannov postopek</h3>
<div class="outline-text-3" id="text-org9849c85">
<p>
Sledeči postopek je Ackermannov:
</p>
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #9d0006;">define</span> <span style="color: #b16286;">(</span><span style="color: #b57614;">A</span> x y<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #9d0006;">cond</span> <span style="color: #8ec07c;">(</span><span style="color: #d65d0e;">(</span>= y 0<span style="color: #d65d0e;">)</span> 0<span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span><span style="color: #d65d0e;">(</span>= x 0<span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span>* 2 y<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span><span style="color: #d65d0e;">(</span>= y 1<span style="color: #d65d0e;">)</span> 2<span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span><span style="color: #9d0006;">else</span> <span style="color: #d65d0e;">(</span>A <span style="color: #458588;">(</span>- x 1<span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A x <span style="color: #b16286;">(</span>- y 1<span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
</pre>
</div>
<p>
Kakšni so rezultati sledečih izrazov?
</p>
<ul class="org-ul">
<li><code>(A 1 10)</code></li>
</ul>
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span>A 1 10<span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 1 9<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 1 8<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 1 7<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 1 6<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 1 5<span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 1 4<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 1 3<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 1 2<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #458588;">(</span>A 1 1<span style="color: #458588;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 2<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 4<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 8<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 16<span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 32<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 64<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 128<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 256<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 512<span style="color: #458588;">)</span>
1024
</pre>
</div>
<ul class="org-ul">
<li><code>(A 2 4)</code></li>
</ul>
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span>A 2 4<span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 1 <span style="color: #b16286;">(</span>A 2 3<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 1 <span style="color: #b16286;">(</span>A 1 <span style="color: #8ec07c;">(</span>A 2 2<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 1 <span style="color: #b16286;">(</span>A 1 <span style="color: #8ec07c;">(</span>A 1 <span style="color: #d65d0e;">(</span>A 2 1<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>A 1 <span style="color: #8ec07c;">(</span>A 1 <span style="color: #d65d0e;">(</span>A 1 2<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>A 1 <span style="color: #8ec07c;">(</span>A 1 <span style="color: #d65d0e;">(</span>A 1 2<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>A 1 <span style="color: #8ec07c;">(</span>A 1 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 1 1<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>A 1 <span style="color: #d65d0e;">(</span>A 1 <span style="color: #458588;">(</span>A 0 2<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>A 1 <span style="color: #d65d0e;">(</span>A 1 <span style="color: #458588;">(</span>A 0 2<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>A 1 <span style="color: #d65d0e;">(</span>A 1 4<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>A 1 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 1 3<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>A 1 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 1 2<span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>A 1 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 1 1<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>A 1 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 2<span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>A 1 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 4<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>A 1 <span style="color: #d65d0e;">(</span>A 0 8<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>A 1 16<span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 1 15<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 1 14<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span>
...
<span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 1 14<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 1<span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #458588;">(</span>A 0 2<span style="color: #458588;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 4<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 8<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 16<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 32<span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 64<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 128<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 256<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 512<span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 <span style="color: #458588;">(</span>A 0 1024<span style="color: #458588;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 0 2048<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 4096<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 8192<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 <span style="color: #b16286;">(</span>A 0 16384<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 0 32768<span style="color: #458588;">)</span>
65536
</pre>
</div>
<ul class="org-ul">
<li><code>(A 3 3)</code></li>
</ul>
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span>A 3 3<span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 2 <span style="color: #b16286;">(</span>A 3 2<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 2 <span style="color: #b16286;">(</span>A 2 <span style="color: #8ec07c;">(</span>A 3 1<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 2 <span style="color: #b16286;">(</span>A 2 2<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 2 <span style="color: #b16286;">(</span>A 1 <span style="color: #8ec07c;">(</span>A 2 1<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 2 <span style="color: #b16286;">(</span>A 1 2<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 2 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 1 1<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 2 <span style="color: #b16286;">(</span>A 0 2<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 2 4<span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 1 <span style="color: #b16286;">(</span>A 2 3<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 1 <span style="color: #b16286;">(</span>A 1 <span style="color: #8ec07c;">(</span>A 2 2<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 1 <span style="color: #b16286;">(</span>A 1 <span style="color: #8ec07c;">(</span>A 1 <span style="color: #d65d0e;">(</span>A 2 1<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 1 <span style="color: #b16286;">(</span>A 1 <span style="color: #8ec07c;">(</span>A 1 2<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 1 <span style="color: #b16286;">(</span>A 1 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 1 1<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 1 <span style="color: #b16286;">(</span>A 1 <span style="color: #8ec07c;">(</span>A 0 2<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 1 <span style="color: #b16286;">(</span>A 1 4<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 1 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 1 3<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 1 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 1 2<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 1 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 <span style="color: #458588;">(</span>A 1 1<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 1 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 <span style="color: #d65d0e;">(</span>A 0 2<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 1 <span style="color: #b16286;">(</span>A 0 <span style="color: #8ec07c;">(</span>A 0 4<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 1 <span style="color: #b16286;">(</span>A 0 8<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>A 1 16<span style="color: #458588;">)</span>
65536
</pre>
</div>
<p>
Če imamo še sledeče postopke:
</p>
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #9d0006;">define</span> <span style="color: #b16286;">(</span><span style="color: #b57614;">f</span> n<span style="color: #b16286;">)</span> <span style="color: #b16286;">(</span>A 0 n<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #9d0006;">define</span> <span style="color: #b16286;">(</span><span style="color: #b57614;">g</span> n<span style="color: #b16286;">)</span> <span style="color: #b16286;">(</span>A 1 n<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #9d0006;">define</span> <span style="color: #b16286;">(</span><span style="color: #b57614;">h</span> n <span style="color: #b16286;">)</span> <span style="color: #b16286;">(</span>A 2 n<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #9d0006;">define</span> <span style="color: #b16286;">(</span><span style="color: #b57614;">k</span> n<span style="color: #b16286;">)</span> <span style="color: #b16286;">(</span>* 5 n n<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
</pre>
</div>
<p>
Jedrnato opredeli matematične funkcije izračuna postopkov <code>f</code>, <code>g</code> in <code>h</code>. <code>k</code>, recimo izračuna <code>5n^2</code>.
</p>
<blockquote>
<p>
<code>f</code>: 2n
</p>
</blockquote>
<blockquote>
<p>
<code>g</code>: 2<sup>n</sup>
</p>
</blockquote>
<blockquote>
<p>
<code>h</code>: 2<sup>2<sup>n</sup></sup>
</p>
</blockquote>
</div>
</div>
</div>
</div>
</body>
</html>