Mercurial > repos > other > SevenLanguagesInSevenWeeks
view 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 |
line wrap: on
line source
hashes.rb(main):001:0> #! /usr/bin/env ruby hashes.rb(main):002:0* hashes.rb(main):003:0* # Ruby has inline hashmap definitions, like PHP. hashes.rb(main):004:0* # Java doesn't. C# isn't quite as clear as this "key => value" pattern. hashes.rb(main):005:0* frenchify = { 'one' => 'un', 'two' => 'deux' } => {"one"=>"un", "two"=>"deux"} hashes.rb(main):006:0> puts frenchify['one'] un => nil hashes.rb(main):007:0> hashes.rb(main):008:0* # Or, done properly with symbols: hashes.rb(main):009:0* frenchify = { :one => 'un', :two => 'deux' } => {:one=>"un", :two=>"deux"} hashes.rb(main):010:0> puts frenchify[:one] un => nil hashes.rb(main):011:0> # But what is a symbol? Its own class, apparently! hashes.rb(main):012:0* puts :one.classhashes.rb(main):012:0* hashes.rb(main):012:0> Symbol => nil