Mercurial > repos > other > SevenLanguagesInSevenWeeks
view 1-Ruby/logic-irb.output @ 68:b4f994693f7b
Fix condition check that was letting it backtrack to build a different set of rows
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 07 Oct 2017 15:43:52 +0100 |
parents | e5b84cc7bc29 |
children |
line wrap: on
line source
logic.rb(main):001:0> #! /usr/bin/env ruby logic.rb(main):002:0* logic.rb(main):003:0* x = 4 => 4 logic.rb(main):004:0> logic.rb(main):005:0* # "if" block is "if… end" - no "then" required logic.rb(main):006:0* if x == 4 logic.rb(main):007:1> puts "x equals 4" logic.rb(main):008:1> end x equals 4 => nil logic.rb(main):009:0> logic.rb(main):010:0* # Python- and Perl-like following logic also works logic.rb(main):011:0* puts "x equals 4" if x == 4 x equals 4 => nil logic.rb(main):012:0> puts "x equals 4" unless x != 4 x equals 4 => nil logic.rb(main):013:0> logic.rb(main):014:0* # Negation has many forms. logic.rb(main):015:0* # Simple logic: logic.rb(main):016:0* if x != 5 logic.rb(main):017:1> puts "x not equal 5" logic.rb(main):018:1> end x not equal 5 => nil logic.rb(main):019:0> logic.rb(main):020:0* # Two options on negation logic.rb(main):021:0* if !(x == 5) logic.rb(main):022:1> puts "x not equal 5" logic.rb(main):023:1> end x not equal 5 => nil logic.rb(main):024:0> logic.rb(main):025:0* if not x == 5 logic.rb(main):026:1> puts "x not equal 5" logic.rb(main):027:1> end x not equal 5 => nil logic.rb(main):028:0> logic.rb(main):029:0* # "unless" blocks instead of "if" logic.rb(main):030:0* unless x != 4 logic.rb(main):031:1> puts "x equal 4" logic.rb(main):032:1> else logic.rb(main):033:1* puts "x not equals 4" logic.rb(main):034:1> end x equal 4 => nil logic.rb(main):035:0> logic.rb(main):036:0* # "then" is optional, except in single line statement logic.rb(main):037:0* if x == 4 then puts "x equal 4" end x equal 4 => nil logic.rb(main):038:0> if x == 4 then logic.rb(main):039:1* puts "x equal 4" logic.rb(main):040:1> end x equal 4 => nil logic.rb(main):041:0> if x == 4 logic.rb(main):042:1> puts "x equal 4" logic.rb(main):043:1> end x equal 4 => nil logic.rb(main):044:0> # The following line gives: logic.rb(main):045:0* # logic.rb:…: syntax error, unexpected tIDENTIFIER, expecting keyword_then or ';' or '\n' logic.rb(main):046:0* # if x == 4 puts "x equal 4" end logic.rb(main):047:0* # logic.rb(main):048:0* # if x == 4 puts "x equal 4" endlogic.rb(main):048:0# logic.rb(main):048:0# logic.rb(main):048:0# => nil