D repl

bearophile bearophileHUGS at lycos.com
Wed Jun 26 05:19:33 PDT 2013


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


More information about the Digitalmars-d mailing list