sicp/zapiski/g1smo/2_6_zapiski_vaje.html

572 lines
51 KiB
HTML
Raw Permalink Normal View History

2024-07-25 11:08:15 +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-09-04 19:25:19 +02:00
<!-- 2024-09-04 sre 19:25 -->
2024-07-25 11:08:15 +02:00
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Zapiski in vaje #6 srečanja programerskega bralnega krožka SICP</title>
<meta name="author" content="Jurij" />
<meta name="generator" content="Org Mode" />
<style type="text/css">
#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>
</head>
<body>
<div id="content" class="content">
<h1 class="title">Zapiski in vaje #6 srečanja programerskega bralnega krožka SICP</h1>
2024-09-04 19:25:19 +02:00
<div id="outline-container-org19a71b6" class="outline-2">
<h2 id="org19a71b6">Teme</h2>
<div class="outline-text-2" id="text-org19a71b6">
2024-07-25 11:08:15 +02:00
</div>
2024-09-04 19:25:19 +02:00
<div id="outline-container-orgaca5b02" class="outline-3">
<h3 id="orgaca5b02">Grajenje abstrakcij s podatki</h3>
<div class="outline-text-3" id="text-orgaca5b02">
2024-07-25 11:08:15 +02:00
<p>
Prvo poglavje, v katerem smo operirali s preprostimi števili, drugo poglavje nadgrajuje s podatkovnimi struktura oz. kombiniranjem podatkovnih objektov v sestavljene podatkovne modele.
</p>
<p>
Torej ustvarili bomo podatkovne abstrakcije in definirali funkcije ki lahko operirajo nad njimi.
Preprost primer je recimo racionalno število, ki ga sestavlja par števca in imenovalca.
</p>
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">ustvari-rac</span> s i<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>cons s i<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">stevec</span> x<span style="color: #b16286;">)</span> <span style="color: #b16286;">(</span>car x<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">imenovalec</span> x<span style="color: #b16286;">)</span> <span style="color: #b16286;">(</span>cdr x<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">izpisi-rac</span> x<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>newline<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>display <span style="color: #8ec07c;">(</span>stevec x<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>display <span style="color: #b8bb26;">"/"</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>display <span style="color: #8ec07c;">(</span>imenovalec x<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #fabd2f;">polovica</span> <span style="color: #b16286;">(</span>ustvari-rac 1 2<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>izpisi-rac polovica<span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>izpisi-rac <span style="color: #b16286;">(</span>ustvari-rac 6 3<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
</pre>
</div>
<p>
Uporabimo funkcijo za najvecji skupni imenovlec, da poenostavimo recimo 6/3 v 2/1.
</p>
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">gcd</span> a b<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #fb4933;">if</span> <span style="color: #8ec07c;">(</span>= b 0<span style="color: #8ec07c;">)</span>
a
<span style="color: #8ec07c;">(</span>gcd b <span style="color: #d65d0e;">(</span>remainder a b<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: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">ustvari-rac</span> s i<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #fb4933;">let</span> <span style="color: #8ec07c;">(</span><span style="color: #d65d0e;">(</span>g <span style="color: #458588;">(</span>gcd s i<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>cons <span style="color: #d65d0e;">(</span>/ s g<span style="color: #d65d0e;">)</span> <span style="color: #d65d0e;">(</span>/ i g<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>izpisi-rac <span style="color: #b16286;">(</span>ustvari-rac 6 3<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
</pre>
</div>
</div>
</div>
</div>
2024-09-04 19:25:19 +02:00
<div id="outline-container-org8206e7f" class="outline-2">
<h2 id="org8206e7f">vaje</h2>
<div class="outline-text-2" id="text-org8206e7f">
2024-07-25 11:08:15 +02:00
</div>
2024-09-04 19:25:19 +02:00
<div id="outline-container-org6ec3c99" class="outline-3">
<h3 id="org6ec3c99">2.1 bolji ustvari-rac</h3>
<div class="outline-text-3" id="text-org6ec3c99">
2024-07-25 11:08:15 +02:00
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">ustvari-rac</span> s i<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>cons
<span style="color: #8ec07c;">(</span><span style="color: #fb4933;">if</span> <span style="color: #d65d0e;">(</span>&lt; i 0<span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span>* -1 s<span style="color: #d65d0e;">)</span>
s<span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>abs i<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
</pre>
</div>
</div>
</div>
2024-09-04 19:25:19 +02:00
<div id="outline-container-org80d30fc" class="outline-3">
<h3 id="org80d30fc">2.2 polovica daljice</h3>
<div class="outline-text-3" id="text-org80d30fc">
2024-07-25 11:08:15 +02:00
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #fabd2f;">make-point</span> cons<span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #fabd2f;">x-point</span> car<span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #fabd2f;">y-point</span> cdr<span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #fabd2f;">make-segment</span> cons<span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">print-point</span> p<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>newline<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>display <span style="color: #b8bb26;">"("</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>display <span style="color: #8ec07c;">(</span>x-point p<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>display <span style="color: #b8bb26;">","</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>display <span style="color: #8ec07c;">(</span>y-point p<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>display <span style="color: #b8bb26;">")"</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">avg</span> a b<span style="color: #b16286;">)</span> <span style="color: #b16286;">(</span>/ <span style="color: #8ec07c;">(</span>+ a b<span style="color: #8ec07c;">)</span> 2<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #fabd2f;">start-segment</span> car<span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #fabd2f;">end-segment</span> cdr<span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">midpoint-segment</span> s<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #fb4933;">let</span> <span style="color: #8ec07c;">(</span><span style="color: #d65d0e;">(</span>start <span style="color: #458588;">(</span>start-segment s<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span>end <span style="color: #458588;">(</span>end-segment s<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>make-point <span style="color: #d65d0e;">(</span>avg <span style="color: #458588;">(</span>x-point start<span style="color: #458588;">)</span> <span style="color: #458588;">(</span>x-point end<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span>avg <span style="color: #458588;">(</span>y-point start<span style="color: #458588;">)</span> <span style="color: #458588;">(</span>y-point end<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>
</div>
</div>
2024-09-04 19:25:19 +02:00
<div id="outline-container-orgf6d22ce" class="outline-3">
<h3 id="orgf6d22ce">2.3 obseg in ploščina pravokotnik</h3>
<div class="outline-text-3" id="text-orgf6d22ce">
<p>
Najprej super simpl imeplemntacija - imamo samo dolžino in širino, ni res v koordinatnem sistemu. Plod lenobe, na katerega in na katero sem ponosen.
</p>
2024-07-25 11:08:15 +02:00
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #7c6f64;">;; </span><span style="color: #7c6f64;">Dolzina in sirina</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">ploscina-kvadra</span> k<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>* <span style="color: #8ec07c;">(</span>car k<span style="color: #8ec07c;">)</span> <span style="color: #8ec07c;">(</span>cdr k<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">obseg-kvadra</span> k<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>* 2 <span style="color: #8ec07c;">(</span>+ car k<span style="color: #8ec07c;">)</span> <span style="color: #8ec07c;">(</span>cdr k<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #fabd2f;">make-kvader</span> cons<span style="color: #458588;">)</span>
</pre>
</div>
2024-09-04 19:25:19 +02:00
<p>
Pa še primer v koordinatnem sistemu. Dejmo reč da je kvader vektor s širino; točka od in točka do daljice dolžine ter širina, ki se zgodi desno od daljice dolžine.
</p>
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #fabd2f;">make-point</span> cons<span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #fabd2f;">make-segment</span> cons<span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #fabd2f;">x-point</span> car<span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #fabd2f;">y-point</span> cdr<span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">print-point</span> p<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>newline<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>display <span style="color: #b8bb26;">"("</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>display <span style="color: #8ec07c;">(</span>x-point p<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>display <span style="color: #b8bb26;">","</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>display <span style="color: #8ec07c;">(</span>y-point p<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>display <span style="color: #b8bb26;">")"</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">daljica</span> pravokotnik<span style="color: #b16286;">)</span> <span style="color: #b16286;">(</span>car pravokotnik<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">sirina</span> pravokotnik<span style="color: #b16286;">)</span> <span style="color: #b16286;">(</span>cdr pravokotnik<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">make-pravokotnik</span> daljica sirina<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>cons daljica sirina<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">tocke-pravokotnika</span> pravokotnik<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>print-point <span style="color: #8ec07c;">(</span>start-segment <span style="color: #d65d0e;">(</span>daljica pravokotnik<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>print-point <span style="color: #8ec07c;">(</span>end-segment pravokotnik <span style="color: #d65d0e;">(</span>daljica pravokotnik<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>print-point <span style="color: #8ec07c;">(</span>+ <span style="color: #d65d0e;">(</span>x-point <span style="color: #458588;">(</span>daljica pravokotnik<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #7c6f64;">;; </span><span style="color: #7c6f64;">TODO cetrta tocka</span>
<span style="color: #458588;">)</span>
</pre>
</div>
2024-07-25 11:08:15 +02:00
</div>
</div>
2024-09-04 19:25:19 +02:00
<div id="outline-container-org165756d" class="outline-3">
<h3 id="org165756d">2.4 Proceduralna reprezantacija parov</h3>
<div class="outline-text-3" id="text-org165756d">
2024-07-25 11:08:15 +02:00
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">cons</span> x y<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #fb4933;">lambda</span> <span style="color: #8ec07c;">(</span>m<span style="color: #8ec07c;">)</span> <span style="color: #8ec07c;">(</span>m x y<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">car</span> z<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>z <span style="color: #8ec07c;">(</span><span style="color: #fb4933;">lambda</span> <span style="color: #d65d0e;">(</span>p q<span style="color: #d65d0e;">)</span> p<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #7c6f64;">;; </span><span style="color: #7c6f64;">kaksen je cdr?</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">cdr</span> z<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>z <span style="color: #8ec07c;">(</span><span style="color: #fb4933;">lambda</span> <span style="color: #d65d0e;">(</span>p q<span style="color: #d65d0e;">)</span> q<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>cons 10 12<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>car <span style="color: #8ec07c;">(</span>cons 10 12<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>cdr <span style="color: #8ec07c;">(</span>cons 10 12<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
</pre>
</div>
</div>
</div>
2024-09-04 19:25:19 +02:00
<div id="outline-container-org265a0b2" class="outline-3">
<h3 id="org265a0b2">2.5 aritmeticni par v stevilu</h3>
<div class="outline-text-3" id="text-org265a0b2">
2024-07-25 11:08:15 +02:00
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">cons</span> a b<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>* <span style="color: #8ec07c;">(</span>expt 2 a<span style="color: #8ec07c;">)</span> <span style="color: #8ec07c;">(</span>expt 3 b<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">car</span> p<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #fb4933;">if</span> <span style="color: #8ec07c;">(</span>= 0 <span style="color: #d65d0e;">(</span>modulo p 2<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>+ 1 <span style="color: #d65d0e;">(</span>car <span style="color: #458588;">(</span>/ p 2<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
0<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">cdr</span> p<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #fb4933;">if</span> <span style="color: #8ec07c;">(</span>= 0 <span style="color: #d65d0e;">(</span>modulo p 3<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>+ 1 <span style="color: #d65d0e;">(</span>cdr <span style="color: #458588;">(</span>/ p 3<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
0<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span>list
<span style="color: #b16286;">(</span>cons 12 41<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>car <span style="color: #8ec07c;">(</span>cons 12 41<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>cdr <span style="color: #8ec07c;">(</span>cons 12 41<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
</pre>
</div>
</div>
</div>
2024-09-04 19:25:19 +02:00
<div id="outline-container-orgc00d6df" class="outline-3">
<h3 id="orgc00d6df">2.6 churchova števila</h3>
<div class="outline-text-3" id="text-orgc00d6df">
2024-07-25 11:08:15 +02:00
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #fabd2f;">zero</span> <span style="color: #b16286;">(</span><span style="color: #fb4933;">lambda</span> <span style="color: #8ec07c;">(</span>f<span style="color: #8ec07c;">)</span> <span style="color: #8ec07c;">(</span><span style="color: #fb4933;">lambda</span> <span style="color: #d65d0e;">(</span>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: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">add-1</span> n<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #fb4933;">lambda</span> <span style="color: #8ec07c;">(</span>f<span style="color: #8ec07c;">)</span> <span style="color: #8ec07c;">(</span><span style="color: #fb4933;">lambda</span> <span style="color: #d65d0e;">(</span>x<span style="color: #d65d0e;">)</span> <span style="color: #d65d0e;">(</span>f <span style="color: #458588;">(</span><span style="color: #b16286;">(</span>n f<span style="color: #b16286;">)</span> x<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: #fb4933;">define</span> <span style="color: #fabd2f;">one</span>
<span style="color: #b16286;">(</span><span style="color: #fb4933;">lambda</span> <span style="color: #8ec07c;">(</span>f<span style="color: #8ec07c;">)</span> <span style="color: #8ec07c;">(</span><span style="color: #fb4933;">lambda</span> <span style="color: #d65d0e;">(</span>x<span style="color: #d65d0e;">)</span> <span style="color: #d65d0e;">(</span>f <span style="color: #458588;">(</span><span style="color: #b16286;">(</span><span style="color: #8ec07c;">(</span><span style="color: #fb4933;">lambda</span> <span style="color: #d65d0e;">(</span>f<span style="color: #d65d0e;">)</span> <span style="color: #d65d0e;">(</span><span style="color: #fb4933;">lambda</span> <span style="color: #458588;">(</span>x<span style="color: #458588;">)</span> x<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span> f<span style="color: #b16286;">)</span> x<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: #fb4933;">define</span> <span style="color: #fabd2f;">two</span>
<span style="color: #b16286;">(</span><span style="color: #fb4933;">lambda</span> <span style="color: #8ec07c;">(</span>f<span style="color: #8ec07c;">)</span> <span style="color: #8ec07c;">(</span><span style="color: #fb4933;">lambda</span> <span style="color: #d65d0e;">(</span>x<span style="color: #d65d0e;">)</span> <span style="color: #d65d0e;">(</span>f <span style="color: #458588;">(</span><span style="color: #b16286;">(</span>one f<span style="color: #b16286;">)</span> x<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: #7c6f64;">;; </span><span style="color: #7c6f64;">pokrajsano</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #fabd2f;">one</span>
<span style="color: #b16286;">(</span><span style="color: #fb4933;">lambda</span> <span style="color: #8ec07c;">(</span>f<span style="color: #8ec07c;">)</span> <span style="color: #8ec07c;">(</span><span style="color: #fb4933;">lambda</span> <span style="color: #d65d0e;">(</span>x<span style="color: #d65d0e;">)</span> <span style="color: #d65d0e;">(</span>f x<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: #fb4933;">define</span> <span style="color: #fabd2f;">two</span>
<span style="color: #b16286;">(</span><span style="color: #fb4933;">lambda</span> <span style="color: #8ec07c;">(</span>f<span style="color: #8ec07c;">)</span> <span style="color: #8ec07c;">(</span><span style="color: #fb4933;">lambda</span> <span style="color: #d65d0e;">(</span>x<span style="color: #d65d0e;">)</span> <span style="color: #d65d0e;">(</span>f <span style="color: #458588;">(</span><span style="color: #b16286;">(</span><span style="color: #8ec07c;">(</span><span style="color: #fb4933;">lambda</span> <span style="color: #d65d0e;">(</span>f<span style="color: #d65d0e;">)</span> <span style="color: #d65d0e;">(</span><span style="color: #fb4933;">lambda</span> <span style="color: #458588;">(</span>x<span style="color: #458588;">)</span> <span style="color: #458588;">(</span>f x<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span> f<span style="color: #b16286;">)</span> x<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: #7c6f64;">;; </span><span style="color: #7c6f64;">@TODO hmm kaj se zgodi tu vmes koristnega za razumevanje?</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #fabd2f;">two</span>
<span style="color: #b16286;">(</span><span style="color: #fb4933;">lambda</span> <span style="color: #8ec07c;">(</span>f<span style="color: #8ec07c;">)</span> <span style="color: #8ec07c;">(</span><span style="color: #fb4933;">lambda</span> <span style="color: #d65d0e;">(</span>x<span style="color: #d65d0e;">)</span> <span style="color: #d65d0e;">(</span>f <span style="color: #458588;">(</span>f x<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>
</div>
</div>
2024-09-04 19:25:19 +02:00
<div id="outline-container-org7b1892d" class="outline-3">
<h3 id="org7b1892d">2.7 Racunanje z intervali (z napako)</h3>
<div class="outline-text-3" id="text-org7b1892d">
2024-07-25 11:08:15 +02:00
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">add-interval</span> x y<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>make-interval <span style="color: #8ec07c;">(</span>+ <span style="color: #d65d0e;">(</span>lower-bound x<span style="color: #d65d0e;">)</span> <span style="color: #d65d0e;">(</span>lower-bound y<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>+ <span style="color: #d65d0e;">(</span>upper-bound x<span style="color: #d65d0e;">)</span> <span style="color: #d65d0e;">(</span>upper-bound y<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: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">mul-interval</span> x y<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span><span style="color: #fb4933;">let</span> <span style="color: #8ec07c;">(</span><span style="color: #d65d0e;">(</span>p1 <span style="color: #458588;">(</span>* <span style="color: #b16286;">(</span>lower-bound x<span style="color: #b16286;">)</span> <span style="color: #b16286;">(</span>lower-bound y<span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span>p2 <span style="color: #458588;">(</span>* <span style="color: #b16286;">(</span>lower-bound x<span style="color: #b16286;">)</span> <span style="color: #b16286;">(</span>upper-bound y<span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span>p3 <span style="color: #458588;">(</span>* <span style="color: #b16286;">(</span>upper-bound x<span style="color: #b16286;">)</span> <span style="color: #b16286;">(</span>lower-bound y<span style="color: #b16286;">)</span><span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span>p4 <span style="color: #458588;">(</span>* <span style="color: #b16286;">(</span>upper-bound x<span style="color: #b16286;">)</span> <span style="color: #b16286;">(</span>upper-bound y<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>make-interval <span style="color: #d65d0e;">(</span>min p1 p2 p3 p4<span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span>max p1 p2 p3 p4<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: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">div-interval</span> x y<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>mul-interval x
<span style="color: #8ec07c;">(</span>make-interval <span style="color: #d65d0e;">(</span>/ 1.0 <span style="color: #458588;">(</span>upper-bound y<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span>/ 1.0 <span style="color: #458588;">(</span>lower-bound y<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: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">make-interval</span> a b<span style="color: #b16286;">)</span> <span style="color: #b16286;">(</span>cons a b<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #fabd2f;">upper-bound</span> cdr<span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #fabd2f;">lower-bound</span> car<span style="color: #458588;">)</span>
2024-09-04 19:25:19 +02:00
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">izpisi-interval</span> a<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>string-append <span style="color: #8ec07c;">(</span>lower-bound a<span style="color: #8ec07c;">)</span> <span style="color: #b8bb26;">"&#8212;"</span> <span style="color: #8ec07c;">(</span>upper-bound a<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
2024-07-25 11:08:15 +02:00
2024-09-04 19:25:19 +02:00
<span style="color: #458588;">(</span>list
<span style="color: #b8bb26;">"3&#8212;4 + 5&#8212;8"</span>
<span style="color: #b16286;">(</span>izpisi-interval
<span style="color: #8ec07c;">(</span>add-interval
<span style="color: #d65d0e;">(</span>make-interval 3 4<span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span>make-interval 5 8<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #b8bb26;">"5&#8212;6 &#215; 8&#8212;10"</span>
<span style="color: #b16286;">(</span>izpisi-interval
<span style="color: #8ec07c;">(</span>mul-interval
<span style="color: #d65d0e;">(</span>make-interval 5 6<span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span>make-interval 8 10<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
2024-07-25 11:08:15 +02:00
</pre>
</div>
</div>
</div>
2024-09-04 19:25:19 +02:00
<div id="outline-container-orgdbb464f" class="outline-3">
<h3 id="orgdbb464f">2.8 odstevanje intervala</h3>
<div class="outline-text-3" id="text-orgdbb464f">
<p>
Pri odštevanju intervala moramo pazit, da od zgornje meje prvega intervala odštejemo spodnjo mejo drugega!
</p>
2024-07-25 11:08:15 +02:00
<div class="org-src-container">
<pre class="src src-scheme"><span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">make-interval</span> a b<span style="color: #b16286;">)</span> <span style="color: #b16286;">(</span>cons a b<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #fabd2f;">upper-bound</span> cdr<span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #fabd2f;">lower-bound</span> car<span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">sub-interval</span> a b<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>make-interval <span style="color: #8ec07c;">(</span>- <span style="color: #d65d0e;">(</span>lower-bound a<span style="color: #d65d0e;">)</span> <span style="color: #d65d0e;">(</span>upper-bound b<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>- <span style="color: #d65d0e;">(</span>upper-bound a<span style="color: #d65d0e;">)</span> <span style="color: #d65d0e;">(</span>lower-bound b<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>sub-interval <span style="color: #8ec07c;">(</span>make-interval 10 12<span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>make-interval 3 7<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
</pre>
</div>
</div>
</div>
2024-09-04 19:25:19 +02:00
<div id="outline-container-orgb6310f8" class="outline-3">
<h3 id="orgb6310f8">2.9 srednja vrednost in napaka</h3>
<div class="outline-text-3" id="text-orgb6310f8">
2024-07-25 11:08:15 +02:00
<p>
2024-09-04 19:25:19 +02:00
Seštevanje je isto pri intervalu od-do kot srednja-vrednost in napaka. Odštevanje je podobno, le da napaki preprosto seštejemo (kar je malo bolj "intuitivno" kot pri intervalu, vsaj meni).
2024-07-25 11:08:15 +02:00
</p>
<div class="org-src-container">
2024-09-04 19:25:19 +02:00
<pre class="src src-scheme"><span style="color: #7c6f64;">;; </span><span style="color: #7c6f64;">"napaka" je "width" intervala</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">make-priblizek</span> vrednost napaka<span style="color: #b16286;">)</span> <span style="color: #b16286;">(</span>cons vrednost napaka<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
2024-07-25 11:08:15 +02:00
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #fabd2f;">vrednost</span> car<span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #fabd2f;">napaka</span> cdr<span style="color: #458588;">)</span>
<span style="color: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">add-priblizek</span> a b<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>make-priblizek <span style="color: #8ec07c;">(</span>+ <span style="color: #d65d0e;">(</span>vrednost a<span style="color: #d65d0e;">)</span> <span style="color: #d65d0e;">(</span>vrednost b<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>+ <span style="color: #d65d0e;">(</span>napaka a<span style="color: #d65d0e;">)</span> <span style="color: #d65d0e;">(</span>napaka b<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: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">sub-priblizek</span> a b<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>make-priblizek <span style="color: #8ec07c;">(</span>- <span style="color: #d65d0e;">(</span>vrednost a<span style="color: #d65d0e;">)</span> <span style="color: #d65d0e;">(</span>vrednost b<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>+ <span style="color: #d65d0e;">(</span>napaka a<span style="color: #d65d0e;">)</span> <span style="color: #d65d0e;">(</span>napaka b<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: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">mul-priblizek</span> a b<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>make-priblizek <span style="color: #8ec07c;">(</span>* <span style="color: #d65d0e;">(</span>vrednost a<span style="color: #d65d0e;">)</span> <span style="color: #d65d0e;">(</span>vrednost b<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
2024-09-04 19:25:19 +02:00
<span style="color: #8ec07c;">(</span>+ <span style="color: #d65d0e;">(</span>* <span style="color: #458588;">(</span>vrednost a<span style="color: #458588;">)</span> <span style="color: #458588;">(</span>napaka b<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span>* <span style="color: #458588;">(</span>vrednost b<span style="color: #458588;">)</span> <span style="color: #458588;">(</span>napaka 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: #458588;">(</span><span style="color: #fb4933;">define</span> <span style="color: #b16286;">(</span><span style="color: #fabd2f;">div-priblizek</span> a b<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>make-priblizek <span style="color: #8ec07c;">(</span>* <span style="color: #d65d0e;">(</span>vrednost a<span style="color: #d65d0e;">)</span> <span style="color: #d65d0e;">(</span>vrednost b<span style="color: #d65d0e;">)</span><span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>+ <span style="color: #d65d0e;">(</span>* <span style="color: #458588;">(</span>vrednost a<span style="color: #458588;">)</span> <span style="color: #458588;">(</span>napaka b<span style="color: #458588;">)</span><span style="color: #d65d0e;">)</span>
<span style="color: #d65d0e;">(</span>* <span style="color: #458588;">(</span>vrednost b<span style="color: #458588;">)</span> <span style="color: #458588;">(</span>napaka 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>
2024-07-25 11:08:15 +02:00
<span style="color: #458588;">(</span>list
2024-09-04 19:25:19 +02:00
<span style="color: #b8bb26;">"vsota in razlika sta preprosti"</span>
<span style="color: #b8bb26;">"8&#177;3 + 4&#177;1 = 12&#177;4 (8&#8212;16)"</span>
2024-07-25 11:08:15 +02:00
<span style="color: #b16286;">(</span>add-priblizek <span style="color: #8ec07c;">(</span>make-priblizek 8 3<span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>make-priblizek 4 1<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
2024-09-04 19:25:19 +02:00
<span style="color: #b8bb26;">"8&#177;3 - 4&#177;1 = 4&#177;4 (6&#8212;8)"</span>
2024-07-25 11:08:15 +02:00
<span style="color: #b16286;">(</span>sub-priblizek <span style="color: #8ec07c;">(</span>make-priblizek 8 3<span style="color: #8ec07c;">)</span>
<span style="color: #8ec07c;">(</span>make-priblizek 4 1<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
<span style="color: #b8bb26;">"pri mnozenju in deljenju pa je \"sirina\" (napaka) odvisna tudi od vrednosti"</span><span style="color: #458588;">)</span>
2024-09-04 19:25:19 +02:00
<span style="color: #b8bb26;">"8&#177;3 &#215; 4&#177;1 = 35&#177;20 (8&#215;4 + 3&#215;1) &#177; (1&#215;8 + 3&#215;4) (15&#8212;55)"</span>
<span style="color: #458588;">(</span>mul-priblizek <span style="color: #b16286;">(</span>make-priblizek 8 3<span style="color: #b16286;">)</span>
<span style="color: #b16286;">(</span>make-priblizek 4 1<span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
<span style="color: #b8bb26;">"8&#177;3 &#247; 4&#177;1 = ?"</span>
<span style="color: #7c6f64;">;; </span><span style="color: #7c6f64;">TODO</span>
<span style="color: #7c6f64;">;</span><span style="color: #7c6f64;">(div-priblizek (make-priblizek 8 3)</span>
<span style="color: #7c6f64;">; </span><span style="color: #7c6f64;">(make-priblizek 4 1))</span>
<span style="color: #7c6f64;">;; </span><span style="color: #7c6f64;">TODO napisi funkcije za deljenje</span>
2024-07-25 11:08:15 +02:00
</pre>
</div>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Jurij</p>
2024-09-04 19:25:19 +02:00
<p class="date">Created: 2024-09-04 sre 19:25</p>
2024-07-25 11:08:15 +02:00
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
</html>