diff --git a/week3/homework/calculator.rb b/week3/homework/calculator.rb new file mode 100644 index 0000000..037b24b --- /dev/null +++ b/week3/homework/calculator.rb @@ -0,0 +1,24 @@ +class Calculator + def sum(values) + values.inject(0) { |result, next_val| result + next_val } + end + def multiply(*values) + values_list = Array.new + if (values.first.kind_of?(Array)) + values_list += values.first + else + values_list += values + end + values_list.inject { |result, next_val| result * next_val } + end + + def pow(base, exponent) + result = 1 + exponent.times{ result *= base } + result + end + + def fac(value) + value == 0 ? 1 : (1..value).inject { |result, next_val| result * next_val } + end +end \ No newline at end of file diff --git a/week3/homework/questions.txt b/week3/homework/questions.txt index dfb158d..671955d 100644 --- a/week3/homework/questions.txt +++ b/week3/homework/questions.txt @@ -6,10 +6,24 @@ Please Read: 1. What is a symbol? +A: A symbol is Ruby's immutable string-like unique primative, used when creating a variable that stands for something significant, much like enumerables in other languages. An example might be creating a symbol for each direction like :up, :down, :left. :right. + 2. What is the difference between a symbol and a string? +A: Strings are mutable, symbols are immutable. + 3. What is a block and how do I call a block? +A: Blocks are chunks of code inbetween delimeters, curly braces or keywords 'do' and 'end'. Blocks are called with a method name, code wrapped in the do and end keywords and any parameters passed to the block with pipes '|' on either side. + +method_name {|parameter| parameter.work} + 4. How do I pass a block to a method? What is the method signature? +A: You can pass a block to a method by immediately including a block following a method name. The method signature does not have to be special, and does not have to take any special parameters. However to emit values to a block, the method definition needs to contain the yield keyword. + +method_name {|parameter| parameter.work} + 5. Where would you use regular expressions? + +A: Regular expressions are used in any situation that calls for string finding/matching. Regex's can be used for user input validation, manipulation/searching of large text files, or even extraction of values from unstructured data.