Skip to content

Question about unification parameter #130

@twizzlespark

Description

@twizzlespark

First of all, i'm really sorry to ask questions in issues tab. I'll be sure to remove this post as soon as i get an answer.
I'm a java web developer who is serious about learning functional programming, with hopes to one day apply it in production level codes.

I've been trying really hard to figure out how lambda library works, but i can't figure out what "unification parameter" is in the library is supposed to be, or what it is for.

The bit of code i am referring to:

 * @param <A> The type of the parameter
 * @param <F> The unification parameter

...

@FunctionalInterface
public interface Functor<A, F extends Functor<?, F>> {
...

I've been unable to figure this out with regular google search, but i am guessing that this is some sort of compiler trick to enforce strict compile time type checks.

Any explanation or any directions to where i should be looking would be greatly appreciated.
Thank you very much.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions