From 0cc93e0a59b0d142225034d57c05bb4caffa28be Mon Sep 17 00:00:00 2001 From: Tyler Limkemann Date: Mon, 21 Oct 2019 14:32:59 -0700 Subject: Tyler's solutions for #31 --- challenge-031/tyler-limkemann/README | 1 + challenge-031/tyler-limkemann/ch-1.p6 | 2 ++ challenge-031/tyler-limkemann/ch-2.p6 | 18 ++++++++++++++++++ 3 files changed, 21 insertions(+) create mode 100644 challenge-031/tyler-limkemann/README create mode 100644 challenge-031/tyler-limkemann/ch-1.p6 create mode 100644 challenge-031/tyler-limkemann/ch-2.p6 diff --git a/challenge-031/tyler-limkemann/README b/challenge-031/tyler-limkemann/README new file mode 100644 index 0000000000..c03a7a0168 --- /dev/null +++ b/challenge-031/tyler-limkemann/README @@ -0,0 +1 @@ +Solutions by Tyler Limkemann. diff --git a/challenge-031/tyler-limkemann/ch-1.p6 b/challenge-031/tyler-limkemann/ch-1.p6 new file mode 100644 index 0000000000..b56840cc6b --- /dev/null +++ b/challenge-031/tyler-limkemann/ch-1.p6 @@ -0,0 +1,2 @@ +CATCH { default { "can't divide by 0!".say } } +(1/0).say; diff --git a/challenge-031/tyler-limkemann/ch-2.p6 b/challenge-031/tyler-limkemann/ch-2.p6 new file mode 100644 index 0000000000..e84fc90949 --- /dev/null +++ b/challenge-031/tyler-limkemann/ch-2.p6 @@ -0,0 +1,18 @@ +use MONKEY; +use nqp; + +class Contextualizer { + submethod ctxsave(*@args --> Nil) { + $*MAIN_CTX := nqp::ctxcaller(nqp::ctx()); + } +} + +sub MAIN(Str $s) { + my $compiler = nqp::getcomp('perl6'); + + my $*MAIN_CTX := nqp::ctx(); + my $*CTXSAVE := Contextualizer; + + $compiler.eval("my \${$s.uc} = ':)'", :outer_ctx($*MAIN_CTX), :interactive(1)); + $compiler.eval("\${$s.uc}.say", :outer_ctx($*MAIN_CTX), :interactive(1)); +} \ No newline at end of file -- cgit