use strict;
use warnings FATAL => qw(all);
use Exporter 'import';
-our @EXPORT_OK = qw($core_ns);
+our @EXPORT_OK = qw(%core_ns);
use Time::HiRes qw(time);
use readline;
-our $core_ns = {
+our %core_ns = (
'=' => sub { _equal_Q($_[0], $_[1]) ? $true : $false },
'throw' => sub { die $_[0] },
'nil?' => sub { _nil_Q($_[0]) ? $true : $false },
'deref' => sub { ${$_[0]} },
'reset!' => sub { ${$_[0]} = $_[1] },
'swap!' => \&swap_BANG,
-};
+);
-foreach my $f (values %$core_ns) {
+foreach my $f (values %core_ns) {
bless $f, 'CoreFunction';
}
use reader;
use printer;
use env;
-use core qw($core_ns);
+use core qw(%core_ns);
# read
sub READ {
}
# core.pl: defined using perl
-foreach my $n (keys %$core_ns) {
- $repl_env->set(Symbol->new($n), $core_ns->{$n});
+foreach my $n (keys %core_ns) {
+ $repl_env->set(Symbol->new($n), $core_ns{$n});
}
# core.mal: defined using the language itself
use reader;
use printer;
use env;
-use core qw($core_ns);
+use core qw(%core_ns);
# read
sub READ {
}
# core.pl: defined using perl
-foreach my $n (keys %$core_ns) {
- $repl_env->set(Symbol->new($n), $core_ns->{$n});
+foreach my $n (keys %core_ns) {
+ $repl_env->set(Symbol->new($n), $core_ns{$n});
}
# core.mal: defined using the language itself
use reader;
use printer;
use env;
-use core qw($core_ns);
+use core qw(%core_ns);
# read
sub READ {
}
# core.pl: defined using perl
-foreach my $n (keys %$core_ns) {
- $repl_env->set(Symbol->new($n), $core_ns->{$n});
+foreach my $n (keys %core_ns) {
+ $repl_env->set(Symbol->new($n), $core_ns{$n});
}
$repl_env->set(Symbol->new('eval'),
bless sub { EVAL($_[0], $repl_env); }, 'CoreFunction');
use reader;
use printer;
use env;
-use core qw($core_ns);
+use core qw(%core_ns);
# read
sub READ {
}
# core.pl: defined using perl
-foreach my $n (keys %$core_ns) {
- $repl_env->set(Symbol->new($n), $core_ns->{$n});
+foreach my $n (keys %core_ns) {
+ $repl_env->set(Symbol->new($n), $core_ns{$n});
}
$repl_env->set(Symbol->new('eval'),
bless sub { EVAL($_[0], $repl_env); }, 'CoreFunction');
use reader;
use printer;
use env;
-use core qw($core_ns);
+use core qw(%core_ns);
# read
sub READ {
}
# core.pl: defined using perl
-foreach my $n (keys %$core_ns) {
- $repl_env->set(Symbol->new($n), $core_ns->{$n});
+foreach my $n (keys %core_ns) {
+ $repl_env->set(Symbol->new($n), $core_ns{$n});
}
$repl_env->set(Symbol->new('eval'),
bless sub { EVAL($_[0], $repl_env); }, 'CoreFunction');
use reader;
use printer;
use env;
-use core qw($core_ns);
+use core qw(%core_ns);
use interop qw(pl_to_mal);
# read
}
# core.pl: defined using perl
-foreach my $n (keys %$core_ns) {
- $repl_env->set(Symbol->new($n), $core_ns->{$n});
+foreach my $n (keys %core_ns) {
+ $repl_env->set(Symbol->new($n), $core_ns{$n});
}
$repl_env->set(Symbol->new('eval'),
bless sub { EVAL($_[0], $repl_env); }, 'CoreFunction');
use reader;
use printer;
use env;
-use core qw($core_ns);
+use core qw(%core_ns);
use interop qw(pl_to_mal);
# read
}
# core.pl: defined using perl
-foreach my $n (keys %$core_ns) {
- $repl_env->set(Symbol->new($n), $core_ns->{$n});
+foreach my $n (keys %core_ns) {
+ $repl_env->set(Symbol->new($n), $core_ns{$n});
}
$repl_env->set(Symbol->new('eval'),
bless sub { EVAL($_[0], $repl_env); }, 'CoreFunction');