File: ConsWorld.fr.html

package info (click to toggle)
plm 2.4.11%2Brepack-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 16,884 kB
  • ctags: 5,987
  • sloc: java: 31,512; ansic: 4,070; python: 2,239; xml: 202; perl: 118; makefile: 62; sh: 15
file content (36 lines) | stat: -rw-r--r-- 2,125 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

<!-- Please don't translate this file but l10n/missions/plm.pot (see https://github.com/oster/PLM/wiki/Working-on-translations) -->
<h1>Monde des listes récursives</h1>

<p>This world allows you to experiment with the recursive strings, as they were
first defined in Lisp. It is very similar to the BatWorld, but you are
supposed to write recursive functions working on [!python|java]recursive
strings. Since [!thelang] does not provide such a construct natively, the
ConsWorld defines recursive lists of type <code>RecList</code>.[/!]
[!scala]lists of integers (<code>List[Int]</code>).</p>

<p>Une telle liste peut être soit la liste vide (notée
<code>[!scala]Nil[/!][!java]null[/!][!python]None[/!]</code>), soit un
entier suivi d'une liste. Si une liste n'est pas vide, vous pouvez retrouver
son premier entier avec <code>list.head</code>. On dit qu'on extrait alors
la tête de la liste.La liste contenant ses autres éléments (tous sauf la
tête) peut être retrouvée avec <code>list.tail</code>. On dit qu'on extrait
la suite de la liste.Bien entendu, la liste vide n'a ni tête ni suite, et
vous ne devriez pas tenter d'accéder à ces éléments sous peine d'obtenir un
message d'erreur (particulièrement déplaisant).</p>

<p>Pour construire votre propre liste, vous devez concaténer une tête et une
suite comme suit : [!java|python]<code>cons(tête, suite)</code>[/!]
[!scala]<code>tête::suite</code>. Il se trouve que <code>::</code> est un
opérateur générique du langage Scala pour construire des listes.[/!]</p>

<p>En résumé, vous pouvez résoudre tous les exercices de cette leçon avec les
constructions suivantes :</p>

<ul>
<li><b>The empty string:</b> <pre>[!java|c]null[/!][!scala]Nil[/!][python]None[/!]</pre></li>
<li><b>Obtenir le premier élément de <code>l</code></b> <pre>l.head</pre></li>
<li><b>Obtenir la suite de la liste</b>, privée de son premier élément: <pre>l.tail</pre></li>
<li><b>Construire une liste</b> à partir d'une <code>valeur</code> et d'une
<code>liste</code>: [!java|python]<pre>cons(valeur, liste)</pre>[/!] [!scala]<pre>valeur::liste</pre>[/!]</li>
</ul>