# Question ##### Part 1 Implement a minimal `Option` that has `map` and `flatMap`. ```scala import scala.{Option => _} sealed trait Maybe[+A]{ def map[B](f: A => B): Maybe[B] def flatMap[B](f: A => Maybe[B]): Maybe[B] } case object Empty extends Maybe[Nothing]{ override def map[B](f: A => B): Maybe[B] = Empty override def flatMap[B](f: A => Maybe[B]): Maybe[B] = Empty } final case class Just[+A](value: A) extends Maybe[A] { override def map[B](f: A => B): Maybe[B] = Just(f(value)) override def flatMap(f: A => Maybe[B]): Maybe[B] = f(value) } ``` ##### Part 2 Implement `fold` ```scala import scala.{Option => _} ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up