CodeTwig - a small project-viewer

2024-06-29 Thread HJarausch
Trying to compile it on Termux(Android) I get ctwig.nim(171, 50) Error: type mismatch: got 'int64' for 'getFilePos(fileob)' but expected 'int' Thanks for looking at this error Helmut

Is there a traditional rounding function?

2022-12-27 Thread HJarausch
By the way, 165.562 **is correct**. The general rule is to round x5 to the next **even** digit, i.e. 2.5 should be rounded to 2 whereas 3.5 should be rounded to 4. There is an IEEE norm for rounding which is used in banking software.

Nimble on Termux uses invalid temp folder

2022-11-16 Thread HJarausch
Sorry, **@TERMUX_PREFIX @** doesn't get resolved. Since I don't know how to access the Termux environment variable **PREFIX** I had to hard-code it as `/data/data/com.termux/files/usr/tmp` which probably works on most Android phones/tablets

Nimble on Termux uses invalid temp folder

2022-11-16 Thread HJarausch
`--- lib/std/private/osappdirs.nim.ORIG 2022-11-16 12:20:36.531282384 +0100 +++ lib/std/private/osappdirs.nim 2022-11-16 12:24:09.291282232 +0100 @@ -139,7 +139,7 @@ let buffer = newWideCString(size.int) if getTempPath(size, buffer) > 0: result = $buffer - elif defined(android): result = "/data/

Nimble on Termux uses invalid temp folder

2022-11-16 Thread HJarausch
Many thanks!

Nimble on Termux uses invalid temp folder

2022-11-15 Thread HJarausch
Nimble on Termux(Android) (current devel version) tries to access /data/local/tmp/nimble_19543/. How can I change the path of the temporary folder? How can I "install" a package (like bigints) without using nimble. Even on a rooted Android device it's hard to make /data/local/tmp accessible for

Internal compiler error - how to debug?

2022-11-15 Thread HJarausch
I have managed to reduce the size of a source file which triggers a compiler error - see bug 19984. Now commenting out a single line makes this source file compile. Thanks for Hint, Helmut

What's the use case for a "block" statement?

2022-08-13 Thread HJarausch
The **block** statement can carry a label which can be used in a **break** statement like block outer : ... within some nested loops break outer Run

Async musings

2022-08-04 Thread HJarausch
Hi Juriy, sorry if this is a bit off topic, do you have an idea how to fix bug 19984? It has to do with closure iterators.

withColor template in "THE BOOK"

2022-08-04 Thread HJarausch
On page 34 of **_the book_** there is a template template withColor(col:Color; body:untyped) = let colorContext {.inject.} =col body withColor(Blue) : . Run Unfortunately the template `withColor` can only be used a single time in the na

--gc:orc when is it usable (huge compile times)

2021-09-22 Thread HJarausch
Thanks Yardanico. Unfortunately I need some more help. After git pull git bisect start git bisect good v1.4.8 git bisect bad devel nim c koch.nim ./koch temp Run gives /home/jarausch/Nim/Compiler/Nim/compiler/commands.nim(39, 11) tem

--gc:orc when is it usable (huge compile times)

2021-09-21 Thread HJarausch
I can confirm that my application compiles fine with Nim-1.4.8 here, as well. So, what is the first commit after the release of Nim-1.4.8 - I could do `nim bisect` then. Thanks, Helmut

--gc:orc when is it usable (huge compile times)

2021-09-20 Thread HJarausch
Does it compile with the `--gc:orc`, as well?

--gc:orc when is it usable (huge compile times)

2021-09-20 Thread HJarausch
Thanks to all! The `--verbosity` flag shows some `not GC-safe` warnings which I don't understand. Terminating the Nim compiler (in gdb) gives the following trace back Program received signal SIGINT, Interrupt. 0x55be8afc in hash_injectdestructors_188 () (gdb) where

--gc:orc when is it usable (huge compile times)

2021-09-19 Thread HJarausch
I have a 2700 lines Nim source file which import about 1000 lines of non-standard includes. Compiling it with `-d:release -d:danger` takes ab 14 seconds CPU time. I had to _kill_ the Nim compiler after 2 hours and 15 minutes (on an otherwise idle machine) when I tried to compile with `--gc:orc

Building Nim Devel on Termux (Android)

2021-09-17 Thread HJarausch
For the record I _have to_ apply the following patches to build Nim devel on Termux(Android) --- build_all.sh.orig 2021-09-17 11:10:48.041226309 +0200 +++ build_all.sh2021-09-17 11:11:33.081226277 +0200 @@ -11,7 +11,7 @@ . ci/funs.sh nimBuildCsourcesIfNeed

Building Nim Devel on Termux (Android)

2021-09-16 Thread HJarausch
First, I have to apply the following tiny patch (csources.patch) --- csources_v1/makefile.orig 2021-09-14 19:01:01.165322316 +0200 +++ csources_v1/makefile2021-09-14 20:15:14.223076934 +0200 @@ -155,6 +155,9 @@ ifeq ($(ucpu),armv7hl) mycpu = arm end

Building Nim Devel on Termux (Android)

2021-09-16 Thread HJarausch
Nim Devel as is doesn't build on Termux/Android. While I can build the Nim compiler, the following linkage of `koch` fails since Termux/Android needs an additional `-landroid-glob` flag. But nim is invoked with `--skipUserCfg` . How can I specify the additional library to be linked against? Tha

[termux pkg] nim:SSL routines:tls_process_server_certificate:certificate verify failed [SslError]

2021-08-31 Thread HJarausch
Here is my recipe (last used on June, 18th) #!/bin/bash # first time only # git clone https://github.com/nim-lang/Nim.git pushd Nim git stash git pull https://github.com/nim-lang/Nim.git # first time # git clone -q --depth 1 https://github.com/nim-lan

invalid type: 'seq[int] or iterator (): int{.closure.}' in this context

2021-08-10 Thread HJarausch
Thanks, that solved it.

invalid type: 'seq[int] or iterator (): int{.closure.}' in this context

2021-08-10 Thread HJarausch
I've tried to compile your curve.nim - the name 'newContext' is undefined. Is there another 'import' necessary? Thanks Helmut

Idiomatic Nim code for 2D Poisson simulation

2021-07-09 Thread HJarausch
@AboAmmar A bit off topic w.r.t Nim. You are using overrelaxation iteration to solve the Poisson equation. That's among the slowest algorithm for that problem. Dependending on your boundary conditions look for Fast Fourier Transform or (algebraic) Multigrid. Then use Nim's capabilities to link t

Recursive iterator to unpack arbitrarily nested sequence

2021-06-17 Thread HJarausch
Perhaps (see my versions at the end) can be useful for you. I have used it for highly recursive iterators.

An simple nrpl for nim

2021-06-12 Thread HJarausch
A dumb question: How to use nims? I don't get output of echo nor does 'quit' work. For the record, on my Gentoo Linux system, I had to do these changes import "/opt/nimble/pkgs/compiler-1.5.1/compiler" / [ast, astalgo, modules, passes, condsyms, ... proc main() = var

Nim Devel - how to (re-) build it?

2021-05-26 Thread HJarausch
That's the case. I don't know where the path `/usr/tools/dochack/dochack.nim` comes from. There is no `/usr/tools` on my machine here.

c2nim -- minor update

2021-05-26 Thread HJarausch
I have been using `c2nim` the first time. The single line file #define LOOP(var,num)for (var = 1; var <= num; ++var) Run bails out with Error: did not expect [NewLine] Run Is there a list of c2nim's limitations (for C macros)?

Nim Devel - how to (re-) build it?

2021-05-26 Thread HJarausch
Recently, I cannot rebuild Nim devel from source any more (on my Gentoo Linux system). I get this error getDocHacksJs: cmd: /usr/bin/nim js -d:release /usr/tools/dochack/dochack.nim oserr.nim(94)raiseOSError Error: unhandled exception: No such file or

Fortran to Nim?

2021-05-25 Thread HJarausch
Are there some tools to aid converting a Fortran source code into Nim? Many thanks for some pointers, Helmut

Nimble Disallow Version

2021-05-14 Thread HJarausch
It could be this one

How to use SharedList

2021-05-05 Thread HJarausch
@Araq "you're much better off with external Nimble packages" That's a problem (with any PL). E.g., I haven't heard anything from Mamy since 4 weeks. Has he fallen ill, or doesn't he have any time to maintain Weave any more. Hopefully this isn't the case, but if it is, anybody who has built his s

Question about re split

2021-04-29 Thread HJarausch
and if you like to use regex, a probably clumsy solution is import re proc mySplit(s:string,rx:Regex) : seq[string] = var start= -1 let sl = len(s) while true : let pos= s.find(rx,start+1) if pos >= 0 : if start >= 0

Why learn NIM

2021-04-27 Thread HJarausch
One big advantage w.r.t. Python (and other languages) is the ease of using multiple cores for parallel programming. Furthermore, Nim replaces C(++) macros and C++ templates with much easier to grasp concepts. And it's easy to wrap existing libraries in C (and probably FORTAN for scientific compu

How to create a pull request?

2021-04-17 Thread HJarausch
Many thanks pietroppeter. I managed to create my first PR now.

How to create a pull request?

2021-04-17 Thread HJarausch
Sorry, I haven't done that before. If I try to create a pull request, I get the `compare changes` page. But on this page I cannot select my repository though I have created it by clone Nim/devel. Thanks for a help hand, Helmut

How to create a pull request?

2021-04-17 Thread HJarausch
I have clone nim into github/HJarausch/Median. There I have modified some files. How can I create a pull request now? Many thanks for a hint, Helmut

Nim (devel) compilation takes a very long time with option --gc:orc

2021-04-07 Thread HJarausch
Sorry, the title was wrong: I didn't use `--gc:orc` but `--gc:arc`

Nim (devel) compilation takes a very long time with option --gc:orc

2021-04-07 Thread HJarausch
I have a small source file (less than 200 lines) but which uses Weave, which is a complicated beast. Just trying to compile it I get nim c --threads:on -d:release Count_Reduction_WV_NL.nim 9.07s user 0.51s system 327% cpu 2.923 total Run but **with --gc:arc**

Gimp plugin?

2021-03-31 Thread HJarausch
Many thanks, Mantielero. That's good start for a long journey.

Nim Devel cannot compile Weave any more

2021-03-31 Thread HJarausch
Am I the only one? Here, Nim Devel cannot compile Weave any more since mid-February. I get/home/jarausch/.nimble/pkgs/weave-#master/weave/cross_thread_com/scoped_barriers.nim(66, 12)| ---|--- Warning: Moving a shared resource (an atomic type). [User] fatal.nim(53) sysFatal Error: unhan

nim doc generates code with invalid indentation

2021-03-24 Thread HJarausch
I am sure it is a bug (or an undocumented feature) This works fine (as in your code) func FCmp(x,y:float):int = if x==y: 0 elif x

nim doc generates code with invalid indentation

2021-03-23 Thread HJarausch
I have fixed a type error myself, please see and `nim doc` still get this "invalid indentation" error. nim -v Nim Compiler Version 1.4.4 [Linux: amd64] Compiled at 2021-03-20 Copyright (c) 2006-2020 by Andreas Rumpf active boot switches: -d:release

runnableExamples need random - what can I do?

2021-03-23 Thread HJarausch
Thanks! Without `static:` and `block:` it works indeed.

runnableExamples need random - what can I do?

2021-03-23 Thread HJarausch
Running `nim doc` on my draft of `median.nim` fails with `/usr/lib/nim/pure/random.nim(250, 8) Error: cannot evaluate at compile time: state`

nim doc generates code with invalid indentation

2021-03-23 Thread HJarausch
If one copies the code after the `block:` statement below into a separate file and moves it to the left, it compiles just fine, but with `runnableExamples` it fails proc median*(A: var openArray[int], left, right : Natural, myCmp : proc(x,y:int):int {.nimcall

array sample slower than indexing into rand(size-1)

2021-03-22 Thread HJarausch
I've just added under `when isMainModule` var randState:Rand Run Then your code goes into an endless loop (even for `for trial in 1..1`)

Generics overload - which one is selected?

2021-03-22 Thread HJarausch
How about this sentence (from the manual) `Likewise for generic matches the most specialized generic type (that still matches) is preferred:` For me that should prefer the `T:SomeInteger` version.

Generics overload - which one is selected?

2021-03-22 Thread HJarausch
The following example does not compile due to an `ambiguous call` error. I don't understand why, since the `T:SomeInteger` version fits better than the generic version proc foo[T](A:openArray[T]) = echo "Generic version" echo A proc foo[T:SomeInteger](A:ope

runnableExamples need random - what can I do?

2021-03-22 Thread HJarausch
Thanks, I forgot to do the import under runnableExamples again.

runnableExamples need random - what can I do?

2021-03-22 Thread HJarausch
I'd like to put some example under `runnableExamples` but this fails since they need `random` which doesn't work at compile time. Is there an alternative?

Location of nimdoc.css ?

2021-03-22 Thread HJarausch
Running nim doc tries to open `/usr/doc/nimdoc.css` but nimdoc.css has been installed in `/opt/nimble/pkgs/compiler-1.4.4/doc/nimdoc.css` Where can I configure the location of nimdoc.css ?

I'd like to make a tiny contribution to stats.nim - how to?

2021-03-22 Thread HJarausch
I'm missing the **median** function in `stats.nim`. I have created one - based on `quickselect` \-- which I want to contribute. Where do I have to create a pull request?

array sample slower than indexing into rand(size-1)

2021-03-21 Thread HJarausch
In `random.nim`, _sample_ is function which consists of result = a[r.rand(a.low..a.high)] Run So, I think it is the function call overhead which makes the difference, especially since there is no **inline** pragma.

Gimp plugin?

2021-03-20 Thread HJarausch
Does anybody known if someone has tried/started writing plugins for the image manipulation application **Gimp**?

atomicMax how to implement it?

2021-03-11 Thread HJarausch
The trivial comp_max was just for demonstration, I know about the problems with the usage of random in multithreading applications. Thanks!

atomicMax how to implement it?

2021-03-11 Thread HJarausch
Provably my current solution can be approved upon. Thanks for any comments, Helmut # compile nim --threads:on -d:release c -r Count.nim import random, weave, atomics var GlobalMax : Atomic[float] let GMax_ptr = addr GlobalMax proc comp_max() : fl

RFC: recursive visitor macro

2021-03-10 Thread HJarausch
Perhaps the _library defined iterator_ github.com/timotheecour/Nim/issues/378 is of some help. I have used my version successfully in a complex, recursive iterator.

array, seq : is there something in between?

2021-03-05 Thread HJarausch
I'd prefer if there won't be an additional container type. One can allow arrays the size of which is only known at run time. The compiler knows if the size has been fixed already at compile time and can do optimizations accordingly.

array, seq : is there something in between?

2021-03-04 Thread HJarausch
Many thanks Charles for the pointers to _vla_ and _stew_. I'll probably try to build my first _C-wrapper_.

array, seq : is there something in between?

2021-03-04 Thread HJarausch
Many thanks Mamy! I agree that the logic of **FlowVar** looks difficult and isn't user friendly. IMHO, simple (but powerful) multi-threading would be a killer feature of Nim. So, I'd like to ask the Delphic Oracle what the future of multi threading will be in Nim. I'll definitely try _Weave_ an

array, seq : is there something in between?

2021-03-04 Thread HJarausch
Thanks, I'll have a look at wrapping `alloca`, but I am pessimistic: The problem arose when I tried to return a _seq_ within a parallel for loop. I fear (currently) a **parallel for loop** doesn't work with custom types. Here is a slightly modified version of an example given by _ynfle_ which fa

array, seq : is there something in between?

2021-03-04 Thread HJarausch
@Araq Unfortunately a **seq** variable doesn't play well in **parallel** section.

array, seq : is there something in between?

2021-03-04 Thread HJarausch
@mratsim For me the C++ example is not a variable length array since it cannot change size of the declaration. Why should it blow up the stack? On a 64bit machine the stack segment can be really large and it can grow. I have definitely used objects of several megabytes on the stack. And each re

array, seq : is there something in between?

2021-03-04 Thread HJarausch
The use of an **array** is very restricted since its length has to be known at compile time. On the other hand, the flexibility of a **seq** which can change its length during its lifetime and which can even be reallocated at lifetime, is not necessary in many cases. Many applications read the

Restrictions in a parallel for loop?

2021-03-03 Thread HJarausch
Many, many thanks for this in in-detail explanation. Please add (something like) this to the documentation of the **parallel** clause. I myself have to digest the **FlowVar** construct first. Is there a typo in your third version? It doesn't compile here (development Nim) The line in error is f

Restrictions in a parallel for loop?

2021-03-02 Thread HJarausch
I have copied the example (computing Pi) from the _experimental features_ document, but I have replaced a simple _float_ variable by an _object which contains a seq[float] variable_ , since this comes closer to my real application. I don't understand the error message _Error: type mismatch: go

Nim can be so difficult to understand

2021-02-28 Thread HJarausch
Thanks, as well.

Nim can be so difficult to understand

2021-02-28 Thread HJarausch
Thanks for the corrected code.

Nim can be so difficult to understand

2021-02-28 Thread HJarausch
Thanks! But if I define `Theta : Matrix[T]` how can I have `MU.Theta` be the same object as `M.Theta`

Nim can be so difficult to understand

2021-02-28 Thread HJarausch
I'd like to create two objects hold a ref to the same _Matrix_ , what am I missing? Many thanks for a hint! type Matrix[T] = ref object data : seq[T] MX[T] = object Theta : ref Matrix[T] MXU[T] = object Theta : ref Matrix[T]

Defects and CatchableErrors

2021-02-17 Thread HJarausch
Is that really true? In C/C++ one can "install" handlers for such hardware interrupts.

How to set filepermissions

2021-02-12 Thread HJarausch
It looks like one can't set the SUID and SGID permissions this way. Probably one has to use the posix module for that. Having to the **os** module and the **posix** doesn't look right. Is there any reason for this situation?

generic functions : syntax / deduction / debugging

2021-02-06 Thread HJarausch
Many thanks to both of you. I am approaching the **Art of Nim Programming**

generic functions : syntax / deduction / debugging

2021-02-06 Thread HJarausch
I am searching for documentation about generic functions in Nim * what is the syntax for generic parameters in brackets * how does the deduction of generic parameters work - what are its limitations * how to debug E.g., the error message in the following example puzzles me. Here I try to

Nim compiler follows symbolic links too eagerly

2021-01-23 Thread HJarausch
I don't like to flood mylib.nim with `when `

Nim compiler follows symbolic links too eagerly

2021-01-23 Thread HJarausch
The former, i.e. MyLibDebug.nim is in the current folder where the source which imports mylib lives, as well.

Nim compiler follows symbolic links too eagerly

2021-01-23 Thread HJarausch
I like to use something like the following (on Linux) `ln -s MyLibDebug.nim MyLib.nim` or `ln -s MyLibInTest.nim MyLib.nim` and then somewhere `import MyLib.nim` but this fails with `invalid module name: MyLib.nim` This feels like a bug.

Exceptions which can hold / pass an object?

2021-01-10 Thread HJarausch
Thanks! I am concerned about that _owned(ref..)_ construct in the standard _newException_ definition. I understand that an exception can't be allocated on the stack. The construction _raise MyException(count:3)_ does this, as well. But the _owned(ref..)_ is missing - or is it generated by the co

Exceptions which can hold / pass an object?

2021-01-09 Thread HJarausch
What is the difference of the following code snippets? The following one is modelled after the standard _newException_ proc MyError= object of CatchableError count:int ... proc newMyError(ct:int) : owned(ref MyError ) {.noinline.} = var e: owned(ref MyError)

Exceptions which can hold / pass an object?

2021-01-08 Thread HJarausch
Thanks. AFAIK this requires to write something like _newMyException_ since I don't how to initialize the fields of _MyException_. Unfortunately, newException(MyException(myfield=1)) Run does not work since _newException_ expects a type argument.

Many Thanks !

2021-01-07 Thread HJarausch
Thanks PMunch and b3liever. Let's hope your contributions get included into the stdlib, soon. And, I would prefer if these get imported automatically with `import macros`

Many Thanks !

2021-01-07 Thread HJarausch
Finally I have managed to _translate_ a 2400 lines Python Code to a nearly 2700 lines Nim code. The hardest part was a 550 lines long Python generator which calls itself (recursively) in many places and is called itself by another generator. This was only possible with the brilliant **iterate**

Exceptions which can hold / pass an object?

2021-01-04 Thread HJarausch
Many thanks!

Exceptions which can hold / pass an object?

2021-01-04 Thread HJarausch
In C++ an exception can hold any type of object. Thus one can pass an object with _raise_ to the _except_ clause. The standard Nim exception can only handle _string_ objects. Is there a means for more general _Exceptions_? Many thanks for a hint, Helmut

c++ backend broken ?

2020-12-23 Thread HJarausch
Done, with a patch for linenoise.c

c++ backend broken ?

2020-12-22 Thread HJarausch
I've just tried to use the C++ backend (gcc-10.2.1) nim cpp -d:danger --gc:arc --passC:-ffast-math ... but I get /usr/lib/nim/wrappers/linenoise/linenoise.c: In function 'void abAppend(abuf*, const char*, int)': /usr/lib/nim/wrappers/linenoise/linenoise.c:462:11: error: exp

one more "collect" question (bug?)

2020-12-14 Thread HJarausch
Is this a restriction or a bug ? import sugar, strformat var st = collect(newString) : for i in 0..2 : &">> {i}" echo st #[ cannot instantiate: 'newString[typeof: for i in 0 .. 2: var fmtRes_369098797 = newStringOfCap(16) add(fmt

Nim (1.4 ORC) v.s. Rust in terms of safety?

2020-12-13 Thread HJarausch
AFAIK, the byaddr pragma is dangerous iff the underlying data structure gets relocated. Is it possible or would it be possible to have something like var S:seq[T] # populate S var s0 {.byaddr.} = S[0] try : monitor(S) # activate a handler which raises "Relocation E

Question about dup syntax

2020-12-11 Thread HJarausch
A Christmas wish at Araq andtimothee : Please bury the hatchet! Together you can advance Nim much more successful. Happy Christmas, Helmut

collect for seq[set[int8]]

2020-12-10 Thread HJarausch
Thanks!

collect for seq[set[int8]]

2020-12-10 Thread HJarausch
I don't understand **collect**. Given type BS8 = set[int8] var S = collect(newSeq) : for i in 0..2 : {} # how can specify which type of set, e.g. BS8, here? Run Unfortunately this doesn't work var S = collect(newSeq[BS8]) : ...

pop for a set - is there something prettier?

2020-12-08 Thread HJarausch
Thanks for all these comments. If I have a set _S_ I can say for e in S : echo e Run Does Nim construct an iterator of S like _items(S)_ [which doesn't work] ? If yes, how is it called - one could assign via let and call it once to an element of a set.

pop for a set - is there something prettier?

2020-12-07 Thread HJarausch
_What would you need a pop operation for?_ There are two cases: * I know there is only one element left in the set, and I want to get this * The elements of a set are processed one at a time in _any order_ until the set is empty. But the algorithm doesn't fit a _for loop_

pop for a set - is there something prettier?

2020-12-07 Thread HJarausch
Unfortunately, the built-in (bit) _set_ type doesn't have a _pop_ procedure (as does HashSet). There must be something prettier than proc pop[T]( S:var set[T] ) : T = if card(S) == 0 : raise newException(IndexDefect,"pop on an empty set") var found : T for

converter - how to switch is off

2020-12-02 Thread HJarausch
Many thanks!

converter - how to switch is off

2020-12-02 Thread HJarausch
A user-defined converter does implicit conversions (only) on code following the its declaration. After that the corresponding implicit conversions apply to all of the remaining lines of code. Is there a pragma to disable those implicit conversions from the point on where this pragma is stated?

How to rewrite nim programming langauge to be pythonic as possible?

2020-11-29 Thread HJarausch
There is one thing I'd like to add to the _wish list_. It's a personal(!) preference. Sometimes it's called _orthogonality_ , or in simple words: _what makes sense, should be possible_. Of course, it's hard to define _what makes sense_. An example is "things that are thought being passable to

How to rewrite nim programming langauge to be pythonic as possible?

2020-11-29 Thread HJarausch
Just a comment w.r.t. rounding. The Python way is THE accepted way of rounding in Numerical Analysis! Always rounding n+0.5 (where n is integer) up is biased and makes problems. People have computed long time astronomical calculations and they experienced that our planets leave our solar system.

recursive iterators - is there a recommend workaround?

2020-11-27 Thread HJarausch
Thanks for your comments. Currently I don't have enough experience in Nim - I am still learning. And since I am still convinced that iterators should upgrade from second class citizens to first class citizens in Nimland, tricky macros are not a solution. For a pull request concerning the compil

recursive iterators - is there a recommend workaround?

2020-11-27 Thread HJarausch
Thanks, this works nice when wrapping a for loop. But I've tried it (naively) in the follow way which fails macro toIter first type mismatch at position: 1 required type for x: ForLoopStmt but expression 'fibonacci()' is of type: iterator (): int{.closure.} Here is my example

Nim quiz?

2020-11-27 Thread HJarausch
Is there something like the following for Nim instead of Python? /

  1   2   >