Skip to content

Commit dccf5e7

Browse files
committed
MAJ MicroAlg 0.4.07.
1 parent 18e740e commit dccf5e7

24 files changed

+2341
-2420
lines changed

doc.html

+716-91
Large diffs are not rendered by default.

emulisp/emulisp_core.js

+16-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
/* 23sep15jk
1+
/* 22dec15jk
22
* (c) Jon Kleiser
33
*/
44

55
var EMULISP_CORE = (function () {
66

7-
var VERSION = [2, 0, 6, 0],
7+
var VERSION = [2, 0, 7, 0],
88
MONLEN = [31, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
99
BOXNAT_EXP = "Boxed native object expected",
1010
BOOL_EXP = "Boolean expected", CELL_EXP = "Cell expected", LIST_EXP = "List expected",
@@ -30,7 +30,7 @@ function getFileSync(fileUrl) {
3030
}
3131
return req.responseText;
3232
}
33-
throw new Error("XMLHttpRequest status: " + req.status);
33+
throw new Error("Retrieving " + fileUrl + ": XMLHttpRequest status " + req.status);
3434
}
3535

3636
var NILTYPE = 0, NUMBERTYPE = 1, SYMBOLTYPE = 2, CELLTYPE = 3, TRUETYPE = 4;
@@ -1590,6 +1590,13 @@ var coreFunctions = {
15901590
}
15911591
return lst;
15921592
},
1593+
"sqrt": function(c) {
1594+
var v = evalLisp(c.car);
1595+
v = numeric(v);
1596+
if (v === NIL) return NIL;
1597+
if (v < 0) throw new Error(newErrMsg(BAD_ARG, v));
1598+
return new Number(Math.sqrt(v));
1599+
},
15931600
"str": function(c) {
15941601
var cv = evalLisp(c.car);
15951602
if (cv instanceof Symbol) {
@@ -1935,9 +1942,15 @@ function evalLisp(lst) {
19351942
return evalDef(lst.car.cdr, lst);
19361943
}
19371944
var s = evalLisp(lst.car);
1945+
if (typeof s === "function") {
1946+
return s(lst.cdr, lst);
1947+
}
19381948
if (typeof s.car === "function") {
19391949
return s.car(lst.cdr, lst);
19401950
}
1951+
if (s instanceof Cell) {
1952+
return evalDef(s, new Cell(s, lst.cdr));
1953+
}
19411954
return evalSym(s, lst);
19421955
}
19431956
if (lst.car instanceof Number) return lst;

ide.html

+3-4
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,13 @@ <h3>Édition de scripts</h3>
6767
le glisser au bout du bloc <code>Afficher</code> puis taper un
6868
message dans ce dernier bloc. Le code correspondant s’affichera
6969
dans la fenêtre en dessous, et pourra être exécuté en cliquant sur
70-
le bouton <code>OK</code>.</p>
70+
le bouton <code>Exécuter</code>.</p>
7171
<p>Pour apprendre MicroAlg au travers de cette interface, suivre
7272
<a href="tuto_blocs.html">le tutoriel correspondant</a>.</p>
7373
<p>La <a href="#script-container">première zone de texte</a> permet
7474
d’éditer des scripts. Pour les exécuter, appuyer sur
7575
<code>Ctrl</code>+<code>Entrée</code> ou cliquer sur le bouton
76-
<code>OK</code>.</p>
76+
<code>Exécuter</code>.</p>
7777
<p>L’affichage des résultats se fait juste après la fenêtre
7878
d’édition si vous utilisez la commande <code>Afficher</code>, ou
7979
dans la fenêtre graphique si vous utilisez
@@ -87,7 +87,7 @@ <h3>Consoles interactives</h3>
8787
<p>En particulier, la <a href="#repl-container">deuxième zone de texte</a>
8888
est un terminal de fortune, bricolé pour l’occasion. Pour exécuter
8989
le code, appuyer sur <code>Ctrl</code>+<code>Entrée</code> ou
90-
cliquer sur le bouton <code>OK</code>.</p>
90+
cliquer sur le bouton <code>Exécuter</code>.</p>
9191
<p>La <a href="#repl-container2">troisième zone de texte</a>
9292
utilise <a href="http://terminal.jcubic.pl/">un plugin jQuery</a>
9393
d’émulation de terminal. Elle est donc assez confortable mais ses
@@ -105,7 +105,6 @@ <h3>Consoles interactives</h3>
105105
inject_microalg_editor_in('script-container',
106106
{src: '(Afficher "Bonjour tout le monde !")',
107107
blockly: true,
108-
output: 'MD',
109108
processing: true,
110109
localStorage: true});
111110
// Focus et curseur final dans l’éditeur:

0 commit comments

Comments
 (0)