1 poin oleh GN⁺ 2024-11-14 | 1 komentar | Bagikan ke WhatsApp
  • Lima fitur Raku yang unik

    • Raku seperti laboratorium untuk bereksperimen dengan berbagai fitur bahasa. Bahasa ini menawarkan beberapa model konkurensi dan beragam kemampuan, dan cara tiap fitur saling berinteraksi pun unik.
  • Junctions

    • Junctions merepresentasikan tumpang tindih nilai-nilai yang mungkin, dan digunakan untuk mengekspresikan ekspresi logis.
    • Operasi diterapkan ke semua nilai yang menjadi target, lalu digunakan dengan mengubahnya menjadi boolean.
    • Melalui junctions, Raku mengekspresikan kuantifier dengan elegan.
  • Whatevers

    • * adalah simbol "whatever" yang menjalankan berbagai peran.
    • Dalam rentang atau sequence, simbol ini berarti "unbound", dan diubah menjadi fungsi anonim.
    • Ini berguna karena banyak metode Raku dioverload agar dapat menerima fungsi.
  • Ekspresi reguler

    • Raku menyediakan sintaks baru yang berbeda dari ekspresi reguler kompatibel POSIX dan Perl yang sudah ada.
    • Ekspresi reguler dapat dikombinasikan dan dipecah menjadi bagian-bagian yang lebih sederhana dan lebih mudah dibaca.
    • Tata bahasa parsing didukung sebagai fitur bawaan bahasa.
  • Hyperoperators

    • l>>.method pada dasarnya mirip dengan map, dan secara rekursif turun hingga ke subdaftar.
    • Operator hiper biner menerapkan operasi secara elemen-per-elemen pada dua daftar.
    • Ini berguna untuk menjalankan rumus yang sama pada banyak input.
  • Pair Syntax

    • Hash di Raku tersusun dari pasangan key => value, dan melalui "colon syntax" pasangan dapat ditulis dengan ringkas.
    • :key dan :!key masing-masing dipetakan ke key => True dan key => False.
    • Ini memungkinkan pengaturan metode yang sangat ringkas.
  • Laboratorium generasi berikutnya: Slangs dan RakuAST

    • Slangs adalah fitur untuk memodifikasi sintaks Raku, sehingga memungkinkan perubahan pada sintaks loop, penggantian identifier, dan sebagainya.
    • RakuAST memungkinkan semua ekspresi Raku di-parse sebagai AST dari dalam Raku sendiri.
  • Eksperimen bonus

    • Raku menyediakan sekumpulan modul pihak ketiga yang sudah terpasang sebelumnya melalui instalasi "Rakudo Star".
    • Ini merupakan kompromi yang sangat baik antara beban pemeliharaan pustaka standar yang besar dan beban pengguna dalam mencari paket yang tepat.
  • Rekomendasi blog

    • Blog Elizabeth Mattijsen dan Codesections menyediakan banyak informasi tentang internal Raku.
    • Raku Advent Calendar adalah sumber yang sangat baik untuk teknik Raku tingkat lanjut.

1 komentar

 
GN⁺ 2024-11-14
Komentar Hacker News
  • Memperkenalkan fitur composable regular expression yang diimplementasikan secara independen di JavaScript, sebuah pustaka yang sering digunakan di berbagai proyek. Fitur ini membuatnya terasa sedikit lebih dekat dengan penggunaan parser kelas satu di dalam bahasa. Dibagikan juga contoh implementasi parsing media type

    • templated-regular-expression tersedia di npm dan GitHub
    • Bahasa pemrograman seharusnya memiliki parser sungguhan, dan tidak menggunakan regular expression sebagai parser. Namun, jika menggunakan regular expression, lebih baik memecahnya menjadi bagian-bagian kecil
  • Ada pendapat bahwa orang lebih ingin meninggalkan industri daripada harus memelihara codebase Raku

  • Masalah performa Raku masih belum terselesaikan, dan Raku terbaru membutuhkan waktu 6,5 kali lebih lama daripada Python 3.13 untuk mem-parsing file log

  • Fitur utama Raku adalah CLI dan grammar

    • CLI adalah fitur umum, dan karena terpasang langsung di Raku, nyaman digunakan
    • Grammar jarang diperlakukan sebagai "warga kelas satu" dalam bahasa pemrograman, dan Raku memberikan kemampuan untuk membuat grammar menggunakan pemrograman berorientasi objek
  • Hyper terlihat seperti versi yang lebih ad hoc dari recursion scheme, mirip dengan _ di Scala. Ada yang menyukai Scala karena lambda, dan merasa semua bahasa seharusnya mengadopsi sesuatu yang serupa

  • Muncul pertanyaan mengapa (2, 30, 4, 50).map(* + *) mengembalikan (32, 45), dan apakah seharusnya mengembalikan (32, 54). Ini mungkin karena perbedaan cara beberapa negara menuliskan angka

  • Ada pendapat apakah Perl sekarang berperan sebagai gerbang menuju keluarga bahasa APL

  • Ada yang terkejut bahwa (2,4,8...*)[17] mengembalikan 262144

  • Ada yang menggunakan Raku di lingkungan nyata dan menganggapnya sebagai bahasa terbaik untuk pemrosesan teks. Membangun parser dengannya sangat baik, dan terasa mengejutkan bahwa bahasa ini bukan yang paling optimal untuk membuat pipeline teks LLM

  • Sudah lama mengikuti proyek ini; menarik, tetapi disayangkan Perl 6 sangat terhambat karena proyek ini