Lecture - Functional Programming, MT22, VIII


Flashcards

When all the conditions hold, what does fold fusion say about $\text{f} \cdot \text{fold g a}$?


\[\text{f} \cdot \text{fold g a} = \text{fold h b}\]

The fold fusion law is

\[\text{f} \cdot \text{fold g a} = \text{fold h b}\]

How many conditions are there for this to hold?


3

The fold fusion law is

\[\text{f} \cdot \text{fold g a} = \text{fold h b}\]

What is the condition about the zero value $b$?

\[\text{f a = b}\]

\[\text{f (g x y)} = \text{h x (f y)}\]

What is the identity $\text{id}$ function as a fold?


\[\text{fold (:) []}\]

How do you determine if a function $f$ can be written as a fold?


Use fold fusion with the identity fold,

\[\text{f}\cdot \text{fold (:) []}\]

When determining if a function $f$ is a fold on lists by composing it with the identity fold, i.e.

\[\text{f}\cdot \text{fold (:) []}\]

What does the tricky condition about “moving $f$ through” become?


\[\text{f (x : xs)} = \text{h x (f xs)}\]



Related posts