Derniers messages sur Zeste de Savoirhttps://zestedesavoir.com/forums/2018-02-25T18:07:21+01:00Les derniers messages parus sur le forum de Zeste de Savoir.OCaml - Error: This '(' might be unmatched, message #1744612018-02-25T18:07:21+01:00Aabu/@Aabuhttps://zestedesavoir.com/forums/sujet/10337/ocaml-error-this-might-be-unmatched/?page=1#p174461<p>Salut,</p>
<p>À la fin de ton code, tu as une boucle <code>for</code>, qui contient deux erreurs.</p>
<p>Déjà, tu as un <code>end</code> sans <code>begin</code>, ce qui n’est pas normal.</p>
<p>Ensuite, tu dois mettre un point-virgule entre les deux instructions de la boucle (l’assignation de la référence et le if).</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5
6
7
8
9</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="k">for</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span> <span class="k">to</span> <span class="o">!</span><span class="n">c</span> <span class="k">do</span>
<span class="k">let</span> <span class="n">mask</span> <span class="o">=</span> <span class="n">dec_to_bin</span> <span class="o">(</span><span class="n">i</span><span class="o">)(</span><span class="nn">Array</span><span class="p">.</span><span class="n">make</span> <span class="n">n</span> <span class="mi">0</span><span class="o">)(</span><span class="mi">0</span><span class="o">)</span> <span class="k">in</span>
<span class="k">let</span> <span class="n">champ</span> <span class="o">=</span> <span class="n">ref</span> <span class="mi">0</span> <span class="k">in</span>
<span class="k">for</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span> <span class="k">to</span> <span class="n">n</span><span class="o">-</span><span class="mi">1</span> <span class="k">do</span>
<span class="n">champ</span> <span class="o">:=</span> <span class="o">!</span><span class="n">champ</span> <span class="o">+</span> <span class="n">ar_of_int</span><span class="o">.(</span><span class="n">j</span><span class="o">)*</span><span class="n">mask</span><span class="o">.(</span><span class="n">j</span><span class="o">);</span>
<span class="k">if</span> <span class="o">!</span><span class="n">champ</span> <span class="o">=</span> <span class="n">p</span> <span class="k">then</span>
<span class="n">print_int</span> <span class="o">(</span><span class="mi">1</span><span class="o">)</span>
<span class="k">done</span>
<span class="k">done</span><span class="o">;;</span>
</pre></div>
</td></tr></table></div>
<p>Par contre, avec cette modification, tu as quand même une erreur à l’exécution.</p>OCaml - Error: This '(' might be unmatched, message #1744562018-02-25T17:27:43+01:00InaDeepThink/@InaDeepThinkhttps://zestedesavoir.com/forums/sujet/10337/ocaml-error-this-might-be-unmatched/?page=1#p174456<p>Bonjour, </p>
<p>J’essaie de programmer en OCaml mais je ne comprends pas ou est l’erreur. Le compilateur me dit qu’il me manque une parenthèse mais je n’arrive pas à voir ou <img alt=":'(" src="/static/smileys/pleure.png"></p>
<p>Voilà mon code : </p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 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</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="kr">let</span> <span class="n">rec</span> <span class="n">dec_to_bin</span> <span class="n">a</span> <span class="n">b</span> <span class="n">c</span> <span class="ow">=</span>
<span class="n">match</span> <span class="n">a</span> <span class="n">with</span>
<span class="o">|</span> <span class="mi">0</span> <span class="ow">-></span> <span class="n">b</span>
<span class="o">|</span> <span class="kr">_</span> <span class="ow">-></span> <span class="kr">if</span> <span class="n">a</span> <span class="n">mod</span> <span class="mi">2</span> <span class="ow">=</span> <span class="mi">0</span> <span class="kr">then</span> <span class="n">dec_to_bin</span> <span class="p">(</span><span class="n">a</span><span class="o">/</span><span class="mi">2</span><span class="p">)(</span><span class="n">b</span><span class="p">)(</span><span class="n">c</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> <span class="kr">else</span> <span class="n">begin</span> <span class="n">b</span><span class="o">.</span><span class="p">(</span><span class="n">c</span><span class="p">)</span> <span class="ow"><-</span> <span class="mi">1</span><span class="p">;</span> <span class="n">dec_to_bin</span> <span class="p">((</span><span class="n">a</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span><span class="p">)(</span><span class="n">b</span><span class="p">)(</span><span class="n">c</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> <span class="n">end</span><span class="p">;;</span>
<span class="kr">let</span> <span class="n">n</span> <span class="ow">=</span> <span class="n">read_int</span><span class="nb">()</span><span class="p">;;</span>
<span class="kr">let</span> <span class="n">p</span> <span class="ow">=</span> <span class="n">read_int</span> <span class="nb">()</span><span class="p">;;</span>
<span class="kr">let</span> <span class="n">ar_of_int</span> <span class="ow">=</span> <span class="kt">Array</span><span class="o">.</span><span class="n">make</span> <span class="n">n</span> <span class="mi">0</span><span class="p">;;</span>
<span class="nf">for</span> <span class="n">i</span> <span class="ow">=</span> <span class="mi">0</span> <span class="n">to</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span> <span class="kr">do</span>
<span class="n">ar_of_int</span><span class="o">.</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> <span class="ow"><-</span> <span class="n">read_int</span><span class="nb">()</span>
<span class="nf">done</span><span class="p">;;</span>
<span class="kr">let</span> <span class="n">c</span> <span class="ow">=</span> <span class="n">ref</span> <span class="mi">1</span><span class="p">;;</span>
<span class="nf">for</span> <span class="n">i</span> <span class="ow">=</span> <span class="mi">0</span> <span class="n">to</span> <span class="n">n</span> <span class="kr">do</span>
<span class="n">c</span> <span class="kt">:=</span> <span class="o">!</span><span class="n">c</span><span class="o">*</span><span class="mi">2</span>
<span class="nf">done</span><span class="p">;;</span>
<span class="nf">for</span> <span class="n">i</span> <span class="ow">=</span> <span class="mi">1</span> <span class="n">to</span> <span class="o">!</span><span class="n">c</span> <span class="kr">do</span>
<span class="kr">let</span> <span class="n">mask</span> <span class="ow">=</span> <span class="n">dec_to_bin</span> <span class="p">(</span><span class="n">i</span><span class="p">)(</span><span class="kt">Array</span><span class="o">.</span><span class="n">make</span> <span class="n">n</span> <span class="mi">0</span><span class="p">)(</span><span class="mi">0</span><span class="p">)</span> <span class="kr">in</span>
<span class="kr">let</span> <span class="n">champ</span> <span class="ow">=</span> <span class="n">ref</span> <span class="mi">0</span> <span class="kr">in</span>
<span class="n">for</span> <span class="n">j</span> <span class="ow">=</span> <span class="mi">0</span> <span class="n">to</span> <span class="n">n</span><span class="o">-</span><span class="mi">1</span> <span class="kr">do</span>
<span class="n">champ</span> <span class="kt">:=</span> <span class="o">!</span><span class="n">champ</span> <span class="o">+</span> <span class="n">ar_of_int</span><span class="o">.</span><span class="p">(</span><span class="n">j</span><span class="p">)</span><span class="o">*</span><span class="n">mask</span><span class="o">.</span><span class="p">(</span><span class="n">j</span><span class="p">)</span>
<span class="kr">if</span> <span class="o">!</span><span class="n">champ</span> <span class="ow">=</span> <span class="n">p</span> <span class="kr">then</span>
<span class="n">print_int</span> <span class="p">(</span><span class="mi">1</span><span class="p">)</span>
<span class="n">end</span>
<span class="n">done</span>
<span class="nf">done</span><span class="p">;;</span>
</pre></div>
</td></tr></table></div>
<p>Voilà le message d’erreur que j’ai : <code>line 26, characters 6-8:
Error: Syntax error: ')' expected
, line 25, characters 41-42:
Error: This '(' might be unmatched</code></p>
<p>Merci d’avance !</p>