annotate 1-Ruby/hashes-irb.output @ 101:1fae0cca1ef8

Reduce large maze to single width corridors This reduces the permutations for a x x x b x To one (two steps north) from four (two steps north; one east, two north, one west; one east, one north, one west, one north; and one north, one east, one north, one west). Longer corridors were worse! We would filter this in the "been here before via another path" but that's still a lot of lookups in lists, which is inefficient.
author IBBoard <dev@ibboard.co.uk>
date Sun, 14 Jul 2019 13:42:24 +0100
parents ebb19742b98f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15
ebb19742b98f Add some minor experiments with hashes (hash tables)
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
1 hashes.rb(main):001:0> #! /usr/bin/env ruby
ebb19742b98f Add some minor experiments with hashes (hash tables)
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
2 hashes.rb(main):002:0*
ebb19742b98f Add some minor experiments with hashes (hash tables)
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
3 hashes.rb(main):003:0* # Ruby has inline hashmap definitions, like PHP.
ebb19742b98f Add some minor experiments with hashes (hash tables)
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
4 hashes.rb(main):004:0* # Java doesn't. C# isn't quite as clear as this "key => value" pattern.
ebb19742b98f Add some minor experiments with hashes (hash tables)
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
5 hashes.rb(main):005:0* frenchify = { 'one' => 'un', 'two' => 'deux' }
ebb19742b98f Add some minor experiments with hashes (hash tables)
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
6 => {"one"=>"un", "two"=>"deux"}
ebb19742b98f Add some minor experiments with hashes (hash tables)
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
7 hashes.rb(main):006:0> puts frenchify['one']
ebb19742b98f Add some minor experiments with hashes (hash tables)
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
8 un
ebb19742b98f Add some minor experiments with hashes (hash tables)
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
9 => nil
ebb19742b98f Add some minor experiments with hashes (hash tables)
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
10 hashes.rb(main):007:0>
ebb19742b98f Add some minor experiments with hashes (hash tables)
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
11 hashes.rb(main):008:0* # Or, done properly with symbols:
ebb19742b98f Add some minor experiments with hashes (hash tables)
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
12 hashes.rb(main):009:0* frenchify = { :one => 'un', :two => 'deux' }
ebb19742b98f Add some minor experiments with hashes (hash tables)
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
13 => {:one=>"un", :two=>"deux"}
ebb19742b98f Add some minor experiments with hashes (hash tables)
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
14 hashes.rb(main):010:0> puts frenchify[:one]
ebb19742b98f Add some minor experiments with hashes (hash tables)
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
15 un
ebb19742b98f Add some minor experiments with hashes (hash tables)
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
16 => nil
ebb19742b98f Add some minor experiments with hashes (hash tables)
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
17 hashes.rb(main):011:0> # But what is a symbol? Its own class, apparently!
ebb19742b98f Add some minor experiments with hashes (hash tables)
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
18 hashes.rb(main):012:0* puts :one.classhashes.rb(main):012:0*
ebb19742b98f Add some minor experiments with hashes (hash tables)
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
19 hashes.rb(main):012:0>
ebb19742b98f Add some minor experiments with hashes (hash tables)
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
20 Symbol
ebb19742b98f Add some minor experiments with hashes (hash tables)
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
21 => nil