16 pontos por alstjr7375 2022-09-01 | 1 comentários | Compartilhar no WhatsApp
  • Um novo modelo de computação chamado Interaction Net, que combina a Máquina de Turing e o Cálculo Lambda
  • Em vez do complexo modelo de empréstimos do Rust, usa um lazy clone primitive semelhante à forma de avaliação do Haskell
  • Como é lazy, o custo de duplicação é praticamente gratuito e, diferentemente do Haskell, é possível compartilhar computação dentro de lambdas (grande vantagem em processamento paralelo)
  • Escolhe um modelo de memória baseado em SIC(Symmetric Interaction Calculus), removendo em boa parte o custo de indireção de ponteiros exigido pela abordagem chamada de Graph Reduction em Haskell e similares (há ganhos quando é possível encontrar o Optimal)
  • Ou seja, em comparação com runtimes de linguagens em geral, não tem GC e tem vantagens em processamento paralelo e tratamento Optimal

1 comentários

 
alstjr7375 2022-09-01

Aqui está a implementação do quicksort.
Como ele usa bastante o cálculo lambda, parece meio parecido com Lisp, né..?

// 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))