Nekaj vaj iz 2. poglavja
parent
ed873d1590
commit
6baa905b87
86
index.html
86
index.html
|
@ -3,13 +3,13 @@
|
|||
"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-06-02 Sun 15:31 -->
|
||||
<!-- 2024-07-24 sre 22:20 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Kompotov programerski bralni krožek #1: SICP</title>
|
||||
<meta name="author" content="Lio Novelli" />
|
||||
<meta name="author" content="Yuri" />
|
||||
<meta name="generator" content="Org Mode" />
|
||||
<style>
|
||||
<style type="text/css">
|
||||
#content { max-width: 60em; margin: auto; }
|
||||
.title { text-align: center;
|
||||
margin-bottom: .2em; }
|
||||
|
@ -198,7 +198,7 @@
|
|||
<body>
|
||||
<div id="content" class="content">
|
||||
<h1 class="title">Kompotov programerski bralni krožek #1: SICP</h1>
|
||||
<div class="footer" id="orgb2b54d1">
|
||||
<div class="footer" id="org89373e3">
|
||||
<p>
|
||||
Izvorna koda se nahaja na <a href="https://git.kompot.si/programerski-bralni-krozek/sicp">git.kompot.si</a>.
|
||||
</p>
|
||||
|
@ -214,18 +214,21 @@ Za bralni krožek se dogovarjamo prek (javne) mailing liste, na katero se lahko
|
|||
</p>
|
||||
|
||||
|
||||
<div id="org118a398" class="figure">
|
||||
<div id="orgcd03147" class="figure">
|
||||
<p><img src="./tb.jpg" alt="tb.jpg" />
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org02019a8" class="outline-2">
|
||||
<h2 id="org02019a8">Srečanja</h2>
|
||||
<div class="outline-text-2" id="text-org02019a8">
|
||||
<div id="outline-container-org5f6fc7e" class="outline-2">
|
||||
<h2 id="org5f6fc7e">Srečanja</h2>
|
||||
<div class="outline-text-2" id="text-org5f6fc7e">
|
||||
</div>
|
||||
<div id="outline-container-org7fd9abd" class="outline-3">
|
||||
<h3 id="org7fd9abd">#5: sreda, 12. 6. 2024 ob 18.45 v CTK</h3>
|
||||
<div class="outline-text-3" id="text-org7fd9abd">
|
||||
<div id="outline-container-org499ffe7" class="outline-3">
|
||||
<h3 id="org499ffe7">#6: sreda, 24. 7. 2024 ob 19.45 v parlamentu</h3>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org17aaf2f" class="outline-3">
|
||||
<h3 id="org17aaf2f">#5: sreda, 12. 6. 2024 ob 18.45 v CTK</h3>
|
||||
<div class="outline-text-3" id="text-org17aaf2f">
|
||||
<p>
|
||||
<a href="https://dogodki.kompot.si/events/63a4ad96-7cc2-45a3-8560-18a1a28cf9b5">Povezava</a> do najave dogodka.
|
||||
</p>
|
||||
|
@ -234,21 +237,27 @@ Za bralni krožek se dogovarjamo prek (javne) mailing liste, na katero se lahko
|
|||
Beremo prvo podpoglavje drugega poglavja Grajenje abstrakcij s podatki.
|
||||
</p>
|
||||
</div>
|
||||
<div id="outline-container-orge85f0d9" class="outline-4">
|
||||
<h4 id="orge85f0d9">zapiski</h4>
|
||||
<div class="outline-text-4" id="text-orge85f0d9">
|
||||
<ul class="org-ul">
|
||||
<li><a href="zapiski/g1smo/2_6_zapiski_vaje.html">g1smo</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org6dabd7c" class="outline-3">
|
||||
<h3 id="org6dabd7c">#4: sreda, 29. 5. 2024 18.45 v CTK</h3>
|
||||
<div class="outline-text-3" id="text-org6dabd7c">
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org1f75703" class="outline-3">
|
||||
<h3 id="org1f75703">#4: sreda, 29. 5. 2024 18.45 v CTK</h3>
|
||||
<div class="outline-text-3" id="text-org1f75703">
|
||||
<p>
|
||||
Dogodek je <a href="https://dogodki.kompot.si/events/0f3df86f-abc0-4725-bb4c-3587262a672c">tukaj</a>.
|
||||
Preglejujemo naloge iz prvega poglavja.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org8097d33" class="outline-3">
|
||||
<h3 id="org8097d33">#3: četrtek, 16. 5. 2024 18.45 v CTK</h3>
|
||||
<div class="outline-text-3" id="text-org8097d33">
|
||||
<div id="outline-container-org1e6cb58" class="outline-3">
|
||||
<h3 id="org1e6cb58">#3: četrtek, 16. 5. 2024 18.45 v CTK</h3>
|
||||
<div class="outline-text-3" id="text-org1e6cb58">
|
||||
<p>
|
||||
Kot ponavadi je dogodek na našem <a href="https://dogodki.kompot.si/events/8435c26d-4dbd-4e28-94c2-a237c837865d">mobilizonu</a>.
|
||||
</p>
|
||||
|
@ -259,10 +268,9 @@ Ker vsebuje poglavje veliko vaj, za katere nismo našli časa, smo se odločili
|
|||
Na srečanju smo skupaj reševali vajo 1.29.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org15650ba" class="outline-4">
|
||||
<h4 id="org15650ba">zapiski</h4>
|
||||
<div class="outline-text-4" id="text-org15650ba">
|
||||
<div id="outline-container-org63ebce9" class="outline-4">
|
||||
<h4 id="org63ebce9">zapiski</h4>
|
||||
<div class="outline-text-4" id="text-org63ebce9">
|
||||
<ul class="org-ul">
|
||||
<li><a href="zapiski/sicp-lio.html#MissingReference">lio</a></li>
|
||||
<li><a href="./zapiski/g1smo/1_3_zapiski_vaje.html">g1smo</a></li>
|
||||
|
@ -270,10 +278,9 @@ Na srečanju smo skupaj reševali vajo 1.29.
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org81e1376" class="outline-3">
|
||||
<h3 id="org81e1376">#2: torek, 30. 4. 2024 18.45 v CTK</h3>
|
||||
<div class="outline-text-3" id="text-org81e1376">
|
||||
<div id="outline-container-orgcde6933" class="outline-3">
|
||||
<h3 id="orgcde6933">#2: torek, 30. 4. 2024 18.45 v CTK</h3>
|
||||
<div class="outline-text-3" id="text-orgcde6933">
|
||||
<p>
|
||||
Dogodek je <a href="https://dogodki.kompot.si/events/8435c26d-4dbd-4e28-94c2-a237c837865d">tukaj</a>.
|
||||
</p>
|
||||
|
@ -282,10 +289,9 @@ Dogodek je <a href="https://dogodki.kompot.si/events/8435c26d-4dbd-4e28-94c2-a23
|
|||
Nadaljujemo z branjem poglavja 1.2, Procedures and the processes they generate.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb685cb5" class="outline-4">
|
||||
<h4 id="orgb685cb5">zapiski</h4>
|
||||
<div class="outline-text-4" id="text-orgb685cb5">
|
||||
<div id="outline-container-orga3bab17" class="outline-4">
|
||||
<h4 id="orga3bab17">zapiski</h4>
|
||||
<div class="outline-text-4" id="text-orga3bab17">
|
||||
<ul class="org-ul">
|
||||
<li><a href="zapiski/sicp_1_2_tina.md">tina</a> (<a href="zapiski/sicp_1_2_tina.scm">vaje</a>, <a href="zapiski/sicp_sec_1_2.scm">druga varjanta</a>)</li>
|
||||
<li><a href="zapiski/sicp-lio.html#MissingReference">lio</a></li>
|
||||
|
@ -294,10 +300,9 @@ Nadaljujemo z branjem poglavja 1.2, Procedures and the processes they generate.
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org643d31a" class="outline-3">
|
||||
<h3 id="org643d31a">#1: sreda, 17. 4. 2024 18.45 v CTK</h3>
|
||||
<div class="outline-text-3" id="text-org643d31a">
|
||||
<div id="outline-container-org403baff" class="outline-3">
|
||||
<h3 id="org403baff">#1: sreda, 17. 4. 2024 18.45 v CTK</h3>
|
||||
<div class="outline-text-3" id="text-org403baff">
|
||||
<p>
|
||||
Beremo uvod in do poglavja 1.2, približno 30 strani.
|
||||
</p>
|
||||
|
@ -306,10 +311,9 @@ Beremo uvod in do poglavja 1.2, približno 30 strani.
|
|||
Link do <a href="https://dogodki.kompot.si/events/76672075-1c6f-48f1-bc37-05dde93371e5">dogodka na dogodki.kompot.si</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org5fc5dba" class="outline-4">
|
||||
<h4 id="org5fc5dba">zapiski</h4>
|
||||
<div class="outline-text-4" id="text-org5fc5dba">
|
||||
<div id="outline-container-org2e2949d" class="outline-4">
|
||||
<h4 id="org2e2949d">zapiski</h4>
|
||||
<div class="outline-text-4" id="text-org2e2949d">
|
||||
<ul class="org-ul">
|
||||
<li><a href="zapiski/g1smo/1_1_zapiski_vaje.html">g1smo</a></li>
|
||||
<li><a href="zapiski/sicp-lio.html">lio</a></li>
|
||||
|
@ -320,4 +324,4 @@ Link do <a href="https://dogodki.kompot.si/events/76672075-1c6f-48f1-bc37-05dde9
|
|||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
|
|
@ -14,10 +14,14 @@ Za bralni krožek se dogovarjamo prek (javne) mailing liste, na katero se lahko
|
|||
[[file:./tb.jpg]]
|
||||
|
||||
* Srečanja
|
||||
** #6: sreda, 24. 7. 2024 ob 19.45 v parlamentu
|
||||
|
||||
** #5: sreda, 12. 6. 2024 ob 18.45 v CTK
|
||||
[[https://dogodki.kompot.si/events/63a4ad96-7cc2-45a3-8560-18a1a28cf9b5][Povezava]] do najave dogodka.
|
||||
|
||||
Beremo prvo podpoglavje drugega poglavja Grajenje abstrakcij s podatki.
|
||||
*** zapiski
|
||||
- [[file:zapiski/g1smo/2_6_zapiski_vaje.org][g1smo]]
|
||||
|
||||
** #4: sreda, 29. 5. 2024 18.45 v CTK
|
||||
Dogodek je [[https://dogodki.kompot.si/events/0f3df86f-abc0-4725-bb4c-3587262a672c][tukaj]].
|
||||
|
|
|
@ -0,0 +1,507 @@
|
|||
<?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-07-24 sre 22:18 -->
|
||||
<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>
|
||||
<div id="outline-container-orgaa918c3" class="outline-2">
|
||||
<h2 id="orgaa918c3">Teme</h2>
|
||||
<div class="outline-text-2" id="text-orgaa918c3">
|
||||
</div>
|
||||
<div id="outline-container-org2a69a4f" class="outline-3">
|
||||
<h3 id="org2a69a4f">Grajenje abstrakcij s podatki</h3>
|
||||
<div class="outline-text-3" id="text-org2a69a4f">
|
||||
<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>
|
||||
<div id="outline-container-org0c8d9f6" class="outline-2">
|
||||
<h2 id="org0c8d9f6">vaje</h2>
|
||||
<div class="outline-text-2" id="text-org0c8d9f6">
|
||||
</div>
|
||||
<div id="outline-container-orgff5527e" class="outline-3">
|
||||
<h3 id="orgff5527e">2.1 bolji ustvari-rac</h3>
|
||||
<div class="outline-text-3" id="text-orgff5527e">
|
||||
<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>< 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>
|
||||
<div id="outline-container-orgc271da6" class="outline-3">
|
||||
<h3 id="orgc271da6">2.2 polovica daljice</h3>
|
||||
<div class="outline-text-3" id="text-orgc271da6">
|
||||
<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>
|
||||
<div id="outline-container-org791e50c" class="outline-3">
|
||||
<h3 id="org791e50c">2.3 obseg in ploscina kvadra</h3>
|
||||
<div class="outline-text-3" id="text-org791e50c">
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-orgf1adee4" class="outline-3">
|
||||
<h3 id="orgf1adee4">2.4 Proceduralna reprezantacija parov</h3>
|
||||
<div class="outline-text-3" id="text-orgf1adee4">
|
||||
<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>
|
||||
<div id="outline-container-orgcf7a90a" class="outline-3">
|
||||
<h3 id="orgcf7a90a">2.5 aritmeticni par v stevilu</h3>
|
||||
<div class="outline-text-3" id="text-orgcf7a90a">
|
||||
<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>
|
||||
<div id="outline-container-org3389c10" class="outline-3">
|
||||
<h3 id="org3389c10">2.6 churchova števila</h3>
|
||||
<div class="outline-text-3" id="text-org3389c10">
|
||||
<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>
|
||||
<div id="outline-container-orgc045649" class="outline-3">
|
||||
<h3 id="orgc045649">2.7 Racunanje z intervali (z napako)</h3>
|
||||
<div class="outline-text-3" id="text-orgc045649">
|
||||
<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>
|
||||
|
||||
<span style="color: #458588;">(</span>list
|
||||
<span style="color: #b16286;">(</span>add-interval
|
||||
<span style="color: #8ec07c;">(</span>make-interval 3 4<span style="color: #8ec07c;">)</span>
|
||||
<span style="color: #8ec07c;">(</span>make-interval 5 8<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span>
|
||||
|
||||
<span style="color: #b16286;">(</span>mul-interval
|
||||
<span style="color: #8ec07c;">(</span>make-interval 5 6<span style="color: #8ec07c;">)</span>
|
||||
<span style="color: #8ec07c;">(</span>make-interval 8 10<span style="color: #8ec07c;">)</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org9363d2f" class="outline-3">
|
||||
<h3 id="org9363d2f">2.8 odstevanje intervala</h3>
|
||||
<div class="outline-text-3" id="text-org9363d2f">
|
||||
<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>
|
||||
<div id="outline-container-org8140af8" class="outline-3">
|
||||
<h3 id="org8140af8">2.9 srednja vrednost in napaka</h3>
|
||||
<div class="outline-text-3" id="text-org8140af8">
|
||||
<p>
|
||||
Sestevanje in odstevanje je isto pri intervalu od-do kot srednja-vrednost napaka
|
||||
</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;">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>
|
||||
|
||||
<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>
|
||||
<span style="color: #8ec07c;">()</span><span style="color: #b16286;">)</span><span style="color: #458588;">)</span>
|
||||
|
||||
<span style="color: #458588;">(</span>list
|
||||
<span style="color: #b8bb26;">"vsota in razlika je preprosta"</span>
|
||||
<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>
|
||||
|
||||
<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>
|
||||
<span style="color: #7c6f64;">;; </span><span style="color: #7c6f64;">TODO napisi funkcije za mnozenje in deljenje</span>
|
||||
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: Jurij</p>
|
||||
<p class="date">Created: 2024-07-24 sre 22:18</p>
|
||||
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -87,8 +87,185 @@ Uporabimo funkcijo za najvecji skupni imenovlec, da poenostavimo recimo 6/3 v 2/
|
|||
(avg (y-point start) (y-point end)))))
|
||||
#+end_src
|
||||
|
||||
** 3.3 obseg in ploscina kvadra
|
||||
** 2.3 obseg in ploscina kvadra
|
||||
|
||||
#+begin_src scheme
|
||||
;; Dolzina in sirina
|
||||
(define (ploscina-kvadra k)
|
||||
(* (car k) (cdr k)))
|
||||
|
||||
(define (obseg-kvadra k)
|
||||
(* 2 (+ car k) (cdr k)))
|
||||
|
||||
(define make-kvader cons)
|
||||
#+end_src
|
||||
|
||||
** 2.4 Proceduralna reprezantacija parov
|
||||
|
||||
#+begin_src scheme
|
||||
(define (cons x y)
|
||||
(lambda (m) (m x y)))
|
||||
|
||||
(define (car z)
|
||||
(z (lambda (p q) p)))
|
||||
|
||||
;; kaksen je cdr?
|
||||
(define (cdr z)
|
||||
(z (lambda (p q) q)))
|
||||
|
||||
(list
|
||||
(cons 10 12)
|
||||
(car (cons 10 12))
|
||||
(cdr (cons 10 12)))
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: '(#<procedure 7f3e1bf08dc0 at <unknown port>:10:2 (m)> 10 12)
|
||||
|
||||
** 2.5 aritmeticni par v stevilu
|
||||
#+begin_src scheme
|
||||
(define (cons a b)
|
||||
(* (expt 2 a) (expt 3 b)))
|
||||
|
||||
(define (car p)
|
||||
(if (= 0 (modulo p 2))
|
||||
(+ 1 (car (/ p 2)))
|
||||
0))
|
||||
|
||||
(define (cdr p)
|
||||
(if (= 0 (modulo p 3))
|
||||
(+ 1 (cdr (/ p 3)))
|
||||
0))
|
||||
|
||||
(list
|
||||
(cons 12 41)
|
||||
(car (cons 12 41))
|
||||
(cdr (cons 12 41)))
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
| 149393393160891541106688 | 12 | 41 |
|
||||
|
||||
** 2.6 churchova števila
|
||||
|
||||
#+begin_src scheme
|
||||
(define zero (lambda (f) (lambda (x) x)))
|
||||
|
||||
(define (add-1 n)
|
||||
(lambda (f) (lambda (x) (f ((n f) x)))))
|
||||
|
||||
(define one
|
||||
(lambda (f) (lambda (x) (f (((lambda (f) (lambda (x) x)) f) x)))))
|
||||
|
||||
(define two
|
||||
(lambda (f) (lambda (x) (f ((one f) x)))))
|
||||
|
||||
;; pokrajsano
|
||||
(define one
|
||||
(lambda (f) (lambda (x) (f x))))
|
||||
|
||||
(define two
|
||||
(lambda (f) (lambda (x) (f (((lambda (f) (lambda (x) (f x))) f) x)))))
|
||||
;; @TODO hmm kaj se zgodi tu vmes koristnega za razumevanje?
|
||||
(define two
|
||||
(lambda (f) (lambda (x) (f (f x)))))
|
||||
|
||||
#+end_src
|
||||
|
||||
** 2.7 Racunanje z intervali (z napako)
|
||||
|
||||
#+begin_src scheme
|
||||
(define (add-interval x y)
|
||||
(make-interval (+ (lower-bound x) (lower-bound y))
|
||||
(+ (upper-bound x) (upper-bound y))))
|
||||
|
||||
(define (mul-interval x y)
|
||||
(let ((p1 (* (lower-bound x) (lower-bound y)))
|
||||
(p2 (* (lower-bound x) (upper-bound y)))
|
||||
(p3 (* (upper-bound x) (lower-bound y)))
|
||||
(p4 (* (upper-bound x) (upper-bound y))))
|
||||
(make-interval (min p1 p2 p3 p4)
|
||||
(max p1 p2 p3 p4))))
|
||||
|
||||
(define (div-interval x y)
|
||||
(mul-interval x
|
||||
(make-interval (/ 1.0 (upper-bound y))
|
||||
(/ 1.0 (lower-bound y)))))
|
||||
|
||||
(define (make-interval a b) (cons a b))
|
||||
|
||||
(define upper-bound cdr)
|
||||
|
||||
(define lower-bound car)
|
||||
|
||||
(list
|
||||
(add-interval
|
||||
(make-interval 3 4)
|
||||
(make-interval 5 8))
|
||||
|
||||
(mul-interval
|
||||
(make-interval 5 6)
|
||||
(make-interval 8 10)))
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: ((8 . 12) (40 . 60))
|
||||
|
||||
** 2.8 odstevanje intervala
|
||||
|
||||
#+begin_src scheme
|
||||
(define (make-interval a b) (cons a b))
|
||||
|
||||
(define upper-bound cdr)
|
||||
|
||||
(define lower-bound car)
|
||||
|
||||
(define (sub-interval a b)
|
||||
(make-interval (- (lower-bound a) (upper-bound b))
|
||||
(- (upper-bound a) (lower-bound b))))
|
||||
|
||||
|
||||
(list
|
||||
(sub-interval (make-interval 10 12)
|
||||
(make-interval 3 7)))
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: ((3 . 9))
|
||||
|
||||
** 2.9 srednja vrednost in napaka
|
||||
|
||||
Sestevanje in odstevanje je isto pri intervalu od-do kot srednja-vrednost napaka
|
||||
|
||||
#+begin_src scheme
|
||||
(define (make-priblizek vrednost napaka) (cons vrednost napaka))
|
||||
|
||||
(define vrednost car)
|
||||
|
||||
(define napaka cdr)
|
||||
|
||||
(define (add-priblizek a b)
|
||||
(make-priblizek (+ (vrednost a) (vrednost b))
|
||||
(+ (napaka a) (napaka b))))
|
||||
|
||||
(define (sub-priblizek a b)
|
||||
(make-priblizek (- (vrednost a) (vrednost b))
|
||||
(+ (napaka a) (napaka b))))
|
||||
|
||||
(define (mul-priblizek a b)
|
||||
(make-priblizek (* (vrednost a) (vrednost b))
|
||||
()))
|
||||
|
||||
(list
|
||||
"vsota in razlika je preprosta"
|
||||
(add-priblizek (make-priblizek 8 3)
|
||||
(make-priblizek 4 1))
|
||||
|
||||
(sub-priblizek (make-priblizek 8 3)
|
||||
(make-priblizek 4 1))
|
||||
"pri mnozenju in deljenju pa je \"sirina\" (napaka) odvisna tudi od vrednosti")
|
||||
;; TODO napisi funkcije za mnozenje in deljenje
|
||||
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
|
|
Loading…
Reference in New Issue