From e3724925d2d96eb2f19f9f53ba77f4acba33f7b7 Mon Sep 17 00:00:00 2001 From: Xtreak Date: Mon, 23 Nov 2015 18:01:36 +0530 Subject: [PATCH] Wrap the example in a code block Wrap the code inside a code block. The declaration for ``proc even(n: int): bool`` is present twice. Hence removed one and wrapped it in a separate code block. --- doc/tut1.txt | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/doc/tut1.txt b/doc/tut1.txt index 7dce8a218f..747c1a3ff6 100644 --- a/doc/tut1.txt +++ b/doc/tut1.txt @@ -758,19 +758,18 @@ However, this cannot be done for mutually recursive procedures: # forward declaration: proc even(n: int): bool -proc even(n: int): bool +.. code-block:: nim + proc odd(n: int): bool = + assert(n >= 0) # makes sure we don't run into negative recursion + if n == 0: false + else: + n == 1 or even(n-1) -proc odd(n: int): bool = - assert(n >= 0) # makes sure we don't run into negative recursion - if n == 0: false - else: - n == 1 or even(n-1) - -proc even(n: int): bool = - assert(n >= 0) # makes sure we don't run into negative recursion - if n == 1: false - else: - n == 0 or odd(n-1) + proc even(n: int): bool = + assert(n >= 0) # makes sure we don't run into negative recursion + if n == 1: false + else: + n == 0 or odd(n-1) Here ``odd`` depends on ``even`` and vice versa. Thus ``even`` needs to be introduced to the compiler before it is completely defined. The syntax for