aboutsummaryrefslogtreecommitdiff
path: root/challenge-049
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2020-03-02 01:17:35 +0000
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2020-03-02 01:17:35 +0000
commite3b727048d42f2aadcb4f2d8a000e6b9cb65725d (patch)
tree465644a7751926cc2ff6d5d4e9a63cbe0bcc62bb /challenge-049
parent6bd129bcad7839a70835cca56e77c52490b886e8 (diff)
downloadperlweeklychallenge-club-e3b727048d42f2aadcb4f2d8a000e6b9cb65725d.tar.gz
perlweeklychallenge-club-e3b727048d42f2aadcb4f2d8a000e6b9cb65725d.tar.bz2
perlweeklychallenge-club-e3b727048d42f2aadcb4f2d8a000e6b9cb65725d.zip
- Removed solution by Mark Anderson.
Diffstat (limited to 'challenge-049')
-rw-r--r--challenge-049/mark-anderson/raku/ch-2.p691
1 files changed, 0 insertions, 91 deletions
diff --git a/challenge-049/mark-anderson/raku/ch-2.p6 b/challenge-049/mark-anderson/raku/ch-2.p6
deleted file mode 100644
index 4e7377fbd1..0000000000
--- a/challenge-049/mark-anderson/raku/ch-2.p6
+++ /dev/null
@@ -1,91 +0,0 @@
-#!/usr/bin/env perl6
-
-use Adverb::Eject;
-
-class LRU {
- has $.capacity;
- has @!cache;
- has %!hash;
-
- method set(Int $k, Int $v) {
- if %!hash{$k}:exists {
- self!update($k);
- }
-
- else {
- if @!cache.elems == $.capacity {
- %!hash{shift @!cache}:delete;
- }
-
- @!cache.push($k);
- %!hash{$k}{"value"} = $v;
- 0..@!cache.elems-1 ==>
- map { %!hash{@!cache[$_]}{"index"} = $_ };
- }
- }
-
- method get(Int $k) {
- if %!hash{$k}:exists {
- self!update($k);
- }
-
- return %!hash{$k}{"value"} // -1;
- }
-
- method !update(Int $k) {
- my $i = %!hash{$k}{"index"};
-
- unless $i == @!cache.elems - 1 {
- @!cache[$i]:eject;
- @!cache.push($k);
- $i..@!cache.elems-1 ==>
- map { %!hash{@!cache[$_]}{"index"} = $_ };
- }
- }
-
- method printIt {
- say "[least recently used] {@!cache.join(", ")} [most recently used]\n";
- }
-}
-
-sub MAIN(Int $capacity where $capacity > 0) {
- my $lru = LRU.new(capacity => $capacity);
-
- say "capacity = {$lru.capacity}\n";
-
- "set(1, 3)".say;
- $lru.set(1, 3);
-
- "set(2, 5)".say;
- $lru.set(2, 5);
-
- "set(3, 7)".say;
- $lru.set(3, 7);
-
- $lru.printIt;
-
- "get(2)".say;
- $lru.get(2).say;
-
- $lru.printIt;
-
- "get(1)".say;
- $lru.get(1).say;
-
- $lru.printIt;
-
- "get(4)".say;
- $lru.get(4).say;
-
- $lru.printIt;
-
- "set(4, 9)".say;
- $lru.set(4, 9);
-
- $lru.printIt;
-
- "get(3)".say;
- $lru.get(3).say;
-
- $lru.printIt;
-}