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

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!