D and Raku
RaycatWhoDat
rmperry09 at gmail.com
Fri Jul 10 16:44:58 UTC 2020
Hello!
I was on my way to post an new topic when I did a search and
found this one.
https://forum.dlang.org/post/ozubrkqquguyplwonjgp@forum.dlang.org
On Thursday, 22 November 2018 at 09:03:19 UTC, Gary Willoughby
wrote:
> On Monday, 19 November 2018 at 06:46:55 UTC, dangbinghoo wrote:
>> So, can you experts give a more comprehensive compare with
>> perl6 and D?
>
> Sure!
>
> 1). You can actually read and understand D code.
I disagree with this dismissive line of reasoning. I've noticed
some interesting parallels between D and Raku (formerly Perl 6),
specifically regarding the modeling power of the two. For
example, here is a script to create a `|`-delimited CSV to import
into Google Sheets.
This is my D implementation:
void main() {
import std.stdio, std.range, std.algorithm;
auto numbers = "formatted_numbers.txt".File.byLine;
auto texts = "formatted_text.txt".File.byLine;
auto types = "formatted_types.txt".File.byLine;
auto output = File("final_conversion.csv", "a");
scope(exit) output.close;
zip(numbers, texts, types)
.each!(line => output.writefln("%s|%s|%s", line.expand));
}
This is my Raku implementation:
use v6;
sub MAIN() {
my @numbers = "formatted_numbers.txt".IO.lines;
my @text = "formatted_text.txt".IO.lines;
my @types = "formatted_types.txt".IO.lines;
my $fileHandle = open "final_conversion.csv", :a;
for @numbers Z @text Z @types -> [$number, $text, $type] {
$fileHandle.sprintf("%s|%s|%s", $number, $text, $type);
}
$fileHandle.close;
}
Both approaches are quite similar with the main difference of the
Raku version being `Z` as the zip operator and the destructuring
assignment instead of `Tuple.expand`. Unfortunately, this example
is a bit too small to really see all of the parallels.
To the people who have used both for less-contrived applications,
what is your experience with the two? What features have you
liked from both?
More information about the Digitalmars-d-learn
mailing list