16 puan yazan alstjr7375 2022-09-01 | 1 yorum | WhatsApp'ta paylaş
  • Turing Machine ile Lambda Calculus'u birleştiren, Interaction Net adlı yeni bir hesaplama modeli
  • Rust'ın karmaşık borrowing modeli yerine, Haskell'in değerlendirme biçimine benzer lazy clone primitive'i kullanır
  • Lazy olduğu için kopyalama maliyeti neredeyse ücretsizdir ve Haskell'den farklı olarak hesaplamayı lambda içinde paylaşabilir (paralel işlemde büyük avantaj sağlar)
  • SIC(Symmetric Interaction Calculus) tabanlı bir bellek modeli seçerek, Haskell vb. dillerde Graph Reduction olarak adlandırılan yöntemde gereken pointer dolaylı başvuru maliyetinin önemli bir kısmını ortadan kaldırır (Optimal bulunabildiğinde avantaj sağlar)
  • Yani tipik dil çalışma zamanlarına kıyasla GC yoktur ve paralellik ile Optimal işleme konusunda güçlü yönlere sahiptir

1 yorum

 
alstjr7375 2022-09-01

QuickSort uygulaması.
Lamda Calculus'u yoğun biçimde kullandığı için Lisp'e benziyor gibi görünüyor..?

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