1 puan yazan GN⁺ 2024-11-14 | 1 yorum | WhatsApp'ta paylaş
  • Beş sıra dışı Raku özelliği

    • Raku, çeşitli dil özelliklerini denemek için bir laboratuvar gibidir. Birden fazla eşzamanlılık modeli ve çeşitli özellikler sunar; her özelliğin birbiriyle etkileşim şekli de benzersizdir.
  • Junctions

    • Junctions, olası değerlerin üst üste binmesini temsil eder ve mantıksal ifadeleri anlatmak için kullanılır.
    • İşlemleri tüm değerlere uygular ve boolean'a dönüştürülerek kullanılır.
    • Raku, junctions aracılığıyla niceleyicileri zarif biçimde ifade eder.
  • Whatevers

    • *, "whatever" sembolüdür ve çeşitli roller üstlenir.
    • Aralık veya dizilerde "unbound" anlamına gelir ve anonim bir fonksiyona dönüştürülür.
    • Birçok Raku yöntemi fonksiyon kabul edecek şekilde aşırı yüklenmiştir; bu da onu kullanışlı kılar.
  • Düzenli ifadeler

    • Raku, geleneksel POSIX ve Perl uyumlu düzenli ifadelerden farklı yeni bir sözdizimi sunar.
    • Düzenli ifadeler birleştirilerek daha basit ve daha okunabilir parçalara ayrılabilir.
    • Ayrıştırma gramerlerini dilin yerleşik bir özelliği olarak destekler.
  • Hyperoperators

    • l>>.method, temelde map benzeridir ve alt listelere kadar özyinelemeli olarak iner.
    • İkili hiper operatörler, iki listeye öğe bazında işlem uygular.
    • Aynı formülü birden fazla giriş üzerinde çalıştırmak için kullanışlıdır.
  • Pair Syntax

    • Raku'daki hash'ler key => value çiftlerinden oluşur ve "colon syntax" ile çiftler kısa biçimde belirtilebilir.
    • :key ve :!key, sırasıyla key => True ve key => False olarak eşlenir.
    • Yöntem ayarlarını son derece kısa biçimde yapmayı sağlar.
  • Yeni nesil laboratuvar: Slangs ve RakuAST

    • Slangs, Raku sözdizimini değiştiren bir özelliktir; döngü sözdizimini değiştirme, tanımlayıcıları yeniden adlandırma gibi şeyleri mümkün kılar.
    • RakuAST, tüm Raku ifadelerinin Raku içinde AST olarak ayrıştırılmasını mümkün kılar.
  • Bonus deney

    • Raku, "Rakudo Star" kurulumu üzerinden önceden yüklenmiş üçüncü taraf modül seti sunar.
    • Bu, büyük bir standart kütüphaneyi sürdürmenin yükü ile kullanıcıların uygun paketi bulma yükü arasında mükemmel bir uzlaşmadır.
  • Blog önerileri

    • Elizabeth Mattijsen ve Codesections blogları, Raku'nun iç yapısı hakkında çok sayıda bilgi sunar.
    • Raku Advent Calendar, ileri seviye Raku teknikleri için mükemmel bir kaynaktır.

1 yorum

 
GN⁺ 2024-11-14
Hacker News görüşü
  • JavaScript'te bağımsız olarak uygulanmış bileşimsel düzenli ifade özelliğini tanıtıyor; bu, çeşitli projelerde sık kullanılan bir kütüphane. Bu özellik, dil içinde birinci sınıf parser kullanma hissine biraz daha yaklaştırıyor. Örnek olarak medya türü ayrıştırmasının nasıl uygulandığını paylaşıyor

    • "templated-regular-expression" npm ve GitHub'da bulunabiliyor
    • Programlama dillerinin gerçek parser'lara sahip olması gerekir; düzenli ifadeler parser olarak kullanılmamalıdır. Ancak düzenli ifadeler kullanılacaksa, onları küçük parçalara bölmek daha iyidir
  • Raku kod tabanının bakımını üstlenmeden önce sektörden ayrılmak istediğine dair bir görüş var

  • Raku'nun hız sorunu hâlâ çözülmedi; en güncel Raku, log dosyalarını ayrıştırmada Python 3.13'ten 6,5 kat daha uzun sürüyor

  • Raku'nun başlıca özellikleri CLI ve grammar yapısı

    • CLI genel bir işlevdir ve Raku'ya gömülü olduğu için kullanımı rahattır
    • Grammar'lar bir programlama dilinde nadiren "birinci sınıf vatandaş" olarak ele alınır ve nesne yönelimli programlama kullanarak grammar oluşturma yeteneği sağlar
  • Hyper, recursion scheme'lerin daha geçici bir sürümü gibi görünüyor ve Scala'daki _ ile benzerlik taşıyor. Lambda'lar için Scala'yı sevdiğini ve tüm dillerin benzer bir şeyi benimsemesi gerektiğini düşünüyor

  • (2, 30, 4, 50).map(* + *) ifadesinin (32, 45) döndürmesi, bunun (32, 54) dönmesi gerekip gerekmediği konusunda soru işareti yaratıyor. Bu, bazı ülkelerde sayıların ifade edilme biçimindeki farklılıktan kaynaklanıyor olabilir

  • Perl'in artık APL ailesi dillere açılan bir kapı işlevi görüp görmediğine dair bir görüş var

  • (2,4,8...*)[17] ifadesinin 262144 döndürmesine şaşırdığını belirtiyor

  • Raku'yu gerçek ortamda kullandığını ve metin işleme için en uygun dil olduğunu düşündüğünü söylüyor. Parser kurmanın çok iyi olduğunu, ancak LLM metin pipeline'ları oluşturmak için en iyi dil olmamasının şaşırtıcı olduğunu ekliyor

  • Bu projeyi uzun zamandır takip ettiğini, ilginç bulduğunu ancak Perl 6'nın bu proje yüzünden ciddi biçimde sekteye uğramış olmasının üzücü olduğunu belirtiyor