Por fin entiendo qué son las mónadas
using std::cpp 2014
Joaquín Mª López Muñoz <
[email protected]>
Madrid, octubre 2014
Telefónica Digital – Video Products Definition & Strategy
No es esto…
Tampoco esto…
¡Son las mónadas!
Definición formal
Definición formal
Pero, ¿qué es realmente una mónada?
Un overload del
operador “;”
Una unidad de
computación
Un truco para
introducir efectos
laterales en
programación
funcional
Una cinta
transportadora
Un objeto cuyos
métodos
devuelven
mónadas
No es posible
definir qué es
una mónada
Algo parecido a
un escritorio
Una forma de
componer
funciones
Construyamos una mónada en C++
optional<T>
template<typename T>
struct optional
{
optional(T const& x)
optional(none_t);
T const& get()const;
T& get();
operator bool()const; // not really
};
optional<double> inv(double x){
if(x==0.0)return none;
else return 1.0/x;
}
optional<double> sqr(double x){
if(x<0.0)return none;
else return std::sqrt(x);
}
optional<double> arcsin(double x){
if(x<-1.0||x>1.0)return none;
else return std::asin(x);
}
Calcular…
Comentarios de: Por fin entiendo qué son las mónadas (0)
No hay comentarios