Programming Challenges
Let's solve coding challenges to practice common computation patterns.
We'll cover the following...
We'll cover the following...
Challenge 1: map on either type
The following algebraic datatype defines the either type:
type ('a, 'b) either = Left of 'a | Right of 'b
As a convention, Right of 'b holds the correct value while Left of 'a represents an error value.
Write a mapping function for either called map_either : ('a -> 'b) -> ('c, 'a) either -> ('c, 'b) either.
Examples:
map_either (fun x -> x * x) (Right 2)= Right 4
map_either (fun x -> x * x) (Left "Error case") = Left "Error case"
(** [square x] returns the square of an input integer. *)let square x = x * xtype ('a, 'b) either = Left of 'a | Right of 'b(** [map_either f e] applies a function [f] to an either [e]. *)let map_either f e = Left "TODO" (* TODO: Replace the hard-coded value with your code here *)
Challenge 2: fold_left
The ...