Slide 39
Slide 39 text
> digits = reverse . unfoldr gen
where gen 0 = Nothing
gen d = Just (d `mod` 10, d `div` 10)
> digits 2718
[2,7,1,8]
> group n = unfoldr gen
where gen [] = Nothing
gen xs = Just (take n xs, drop n xs)
> group 3 [1,2,3,4,5,6,7,8,9,10,11]
[[1,2,3],[4,5,6],[7,8,9],[10,11]]
π’ππππππΏ! β· π½ β π΄ππππ (πΌ, π½) β π½ β π³πππ πΌ
π’ππππππΏ! π π’ = πππ¬π π π’ π¨π
π΅ππππππ β π΅ππ
π±πππ (π₯, π£) β πͺπππ π₯ (π’ππππππΏ! π π£)
scala> def digits(n: Int): List[Int] =
| LazyList.unfold(n):
| case 0 => None
| case x => Some(x % 10, x / 10)
| .toList.reverse
|
def digits(n: Int): List[Int]
scala> digits(2718)
val res0: List[Int] = List(2, 7, 1, 8)
scala> def group[A](n: Int, as: List[A]): List[List[A]] =
| LazyList.unfold(as):
| case Nil => None
| case xs => Some(xs.take(n), xs.drop(n))
| .toList
|
def group[A](n: Int, as: List[A]): List[List[A]]
scala> group(3, List(1,2,3,4,5,6,7,8,9,10,11))
val res0: List[List[Int]]=List(List(1,2,3),List(4,5,6),List(7,8,9),List(10,11))
unfoldr unfold