Question: Problem 99 Some programmers like to handle errors by throwing exceptions, others like to return the optional value None. Implement a combinator called deOptionize that
Problem 99
Some programmers like to handle errors by throwing exceptions, others like to return the optional value None. Implement a combinator called deOptionize that takes a unary, option-returning function, f, as input and converts it into a non-option returning function g that handles errors by throwing exceptions.
Use your combinator to convert the following function:
def parseDigits(digits: String): Option[Int] = if (digits.matches("[0-9]*")) Some(digits.toInt) else None
Problem 58
A programmer is asked to write a function that iterates the square function a specified number of times. So she writes:
def square(x: Double) = x * x def iterSquare(init: Double, n: Int) = { var result = init for(i <- 0 to n) result = square(result) result }
But a team of programmers might have dozens of functions like this in its library, including some that might have errors.
A. Write a generic combinator that will generate functions like iterSquare, but in which square is replaced by a parameter.
B. Re-write the above combinator using your solution to A.
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
