16 puntos por alstjr7375 2022-09-01 | 1 comentarios | Compartir por WhatsApp
  • Un nuevo modelo de cómputo llamado Interaction Net que combina la Máquina de Turing y el Lambda Calculus
  • En lugar del complejo modelo de préstamos de Rust, usa un lazy clone primitive similar al método de evaluación de Haskell
  • Como es lazy, el costo de duplicación es casi gratuito y, a diferencia de Haskell, permite compartir el cálculo dentro de las lambdas (con grandes ventajas en procesamiento paralelo)
  • Elige un modelo de memoria basado en SIC(Symmetric Interaction Calculus), eliminando en gran medida el costo de indirección de punteros que requería el método llamado Graph Reduction en Haskell y otros lenguajes (hay beneficios cuando se puede encontrar el caso optimal)
  • Es decir, frente a los runtimes de lenguajes comunes, no tiene GC y destaca en procesamiento paralelo y optimal

1 comentarios

 
alstjr7375 2022-09-01

Aquí va una implementación de quicksort.
Como usa activamente el cálculo lambda, se ve un poco parecido a Lisp, ¿no?..

// QuickSort  
(QSort p s Nil)          = Empty  
(QSort p s (Cons x Nil)) = (Single x)  
(QSort p s (Cons x xs))  =  
  (Split p s (Cons x xs) Nil Nil)  
  
// Splits list in two partitions  
(Split p s Nil min max) =  
  let s   = (>> s 1)  
  let min = (QSort (- p s) s min)  
  let max = (QSort (+ p s) s max)  
  (Concat min max)  
(Split p s (Cons x xs) min max) =  
  (Place p s (< p x) x xs min max)  
  
// Sorts and sums n random numbers  
(Main n) =  
  let list = (Randoms 1 (* 100000 n))  
  (Sum (QSort Pivot Pivot list))