diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-03-02 01:17:35 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-03-02 01:17:35 +0000 |
| commit | e3b727048d42f2aadcb4f2d8a000e6b9cb65725d (patch) | |
| tree | 465644a7751926cc2ff6d5d4e9a63cbe0bcc62bb /challenge-049 | |
| parent | 6bd129bcad7839a70835cca56e77c52490b886e8 (diff) | |
| download | perlweeklychallenge-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.p6 | 91 |
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; -} |
