It looks very nice. I like the interactive shell in Python and Haskell. Even languages like Scala enjoy it. The importance of a good REPL can't be underestimated. I'd like a good repl in the standard D distribution (despite the installation with dub is easy).

Notes:
- Regarding the input and output lines, I suggest to take a look at Mathematica and Sage. I think it's better to give numbers only to the inputs (or separate numbers to inputs and outputs), and to denote inputs and outputs differently. So there's no need for the "=>".
- print stringNums: very nice.
- .map!(a => a.to!string) and .map!(a => S(a)) can also be written like this:

import std.stdio, std.algorithm, std.range, std.conv;
void main() {
    10.iota.map!text.writeln;
    static struct S { int x; }
    10.iota.map!S.writeln;
}

- is type x  the same as  print typeof(x)  ?
- line 29: foreach that prints the last result of the iteration: it's interesting.

I have followed the instructions:

git clone https://github.com/callumenator/dabble
cd dabble
dub build --config=console

But the compilation stops with the errors:

Running dmd (compile)...
...\dub\packages\pegged-master\pegged\dynamic\grammar.d(245): Error: not a property eps ...\dub\packages\pegged-master\pegged\dynamic\grammar.d(418): Error: not a property fail


I think DUB should print _where_ it copies files, and it should use a less hard to find place to stores them. (An optional idea is to store inside the directory of dub a link to the directory where dub stores those files).

Bye,
bearophile

Reply via email to