Articles of ocaml

F # cambia a OCaml

F # se deriva de OCaml, pero ¿qué elementos principales faltan o se agregan? Específicamente, tengo curiosidad sobre si los recursos disponibles para aprender OCaml también son útiles para alguien que quiere aprender F #.

La restricción de valor

En OCaml no se puede generalizar una función curried parcialmente aplicada (la “restricción de valor”). ¿Cuál es el propósito de la restricción de valor? ¿Qué desagradable sucedería si no existiera?

¿Por qué las funciones en Ocaml / F # no son recursivas por defecto?

¿Por qué las funciones en F # y Ocaml (y posiblemente en otros idiomas) no son recursivas por defecto? En otras palabras, ¿por qué los diseñadores de idiomas decidieron que era una buena idea hacer explícitamente que rec en una statement como: let rec foo … = … y no le da la función de […]

Abusar del álgebra de tipos de datos algebraicos: ¿por qué funciona esto?

La expresión ‘algebraica’ para los tipos de datos algebraicos parece muy sugestiva para alguien con una formación en matemáticas. Déjame intentar explicar lo que quiero decir. Habiendo definido los tipos básicos Producto • Unión + Singleton X Unidad 1 y usando la abreviatura X² para X•X y 2X para X+X , etc., podemos definir expresiones […]

En la progtwigción funcional, ¿qué es un funtor?

Me he topado con el término “Functor” varias veces mientras leo varios artículos sobre progtwigción funcional, pero los autores suelen suponer que el lector ya entiende el término. Mirar en la web ha proporcionado descripciones excesivamente técnicas (ver el artículo de Wikipedia ) o descripciones increíblemente vagas (ver la sección sobre Functors en este sitio […]

¿Cuál es la diferencia entre ‘a’ y ‘_l?

¿Cuál es la diferencia entre ‘a ‘_l y ‘_l ? Estaba viendo este error y no podía comprenderlo: Error: This expression has type (‘a -> float polynomial) list but an expression was expected of type float polynomial list derivlist: (‘_l → float polynomial) list

Función recursiva de la cola para encontrar la profundidad de un árbol en Ocaml

Tengo un tree tipos definido de la siguiente manera type ‘a tree = Leaf of ‘a | Node of ‘a * ‘a tree * ‘a tree ;; Tengo una función para encontrar la profundidad del árbol de la siguiente manera let rec depth = function | Leaf x -> 0 | Node(_,left,right) -> 1 + […]

Usar expresiones regulares para validar un rango numérico

Mi número de entrada es un int. Pero el número de entrada debe estar en un rango de -2055 a 2055 y quiero verificarlo usando expresiones regulares. Entonces, ¿hay alguna forma de escribir una expresión regular para verificar si un número está en (-2055, 2055) o no? Es más fácil usar la instrucción if para […]