hablapps / algorithms

Implementation in Scala of algorithmic patterns
0 stars 1 forks source link

Higher-kind generics #9

Open jserranohidalgo opened 2 years ago

jserranohidalgo commented 2 years ago

El propósito de este ticket es llegar a una type class común para el esquema de divide y vencerás, que generalice el tipo de container utilizado en la descomposición del problema y la composición de las soluciones. Es decir, en lugar de un esquema tipo "merge sort" y un esquema para el problema de la potencia, utilizar un esquema único.

Para ello, tendremos que abstraer el tipo de container utilizando higher-kind generics y type-constructor classes, de una forma similar a como se hace en este notebook:

https://github.com/hablatraining/training/blob/master/tema2-typeclasses/src/test/scala/3-TypeConstructors/code/1-Functor.scala

y en estos otros:

https://github.com/hablatraining/funcourse-telefonica-2021/tree/master/5-languages/code

jserranohidalgo commented 2 years ago

Aquí hay alguna pequeña explicación sobre los genericidad de higher-kind: https://drive.google.com/file/d/1r1n5Q5FmBW7f93EbekhxHy_d0Mbed1UQ/view?usp=sharing

aquí también:

https://stackoverflow.com/questions/6246719/what-is-a-higher-kinded-type-in-scala https://typelevel.org/blog/2016/08/21/hkts-moving-forward.html

en el libro de scala te envían a este artículo, algo antiguo:

https://adriaanm.github.io/files/higher.pdf