Bahasa pengaturcaraan J, sebuah bahasa fungsian berorientasikan tatasusunan yang serupa dengan APL, telah mencetuskan perbincangan dalam komuniti pengaturcaraan baru-baru ini, terutamanya disebabkan oleh sintaksnya yang unik dan pendekatan dalam menyelesaikan masalah. Sebuah artikel pengenalan kepada J baru-baru ini telah mencetuskan perbualan mengenai keunikan bahasa tersebut dan juga isu berulang di mana tajuk penyerahan dipotong pada platform perkongsian.
Isu Pemotongan Tajuk Menyoroti Masalah Penyerahan
Artikel bertajuk Memahami J kelihatan telah terpotong ketika dikongsi, menyebabkan beberapa komen tentang tajuk yang tidak lengkap. Ahli komuniti menyatakan bahawa ini adalah isu berulang dengan penyumbang tertentu yang menggunakan bot automatik untuk menerbitkan semula kandungan dari laman web lain tanpa memeriksa sama ada tajuk muat dengan betul. Seorang pengomen mencadangkan bahawa memendekkan Understanding J: An introduction to J that gets to the point sepatutnya berfungsi dengan baik, sementara yang lain menyatakan bahawa penyumbang telah menerbitkan tajuk yang bermasalah selama kira-kira lima tahun tanpa membaiki bot mereka.
Sintaks Unik J Mencetuskan Rasa Ingin Tahu dan Kekeliruan
Ciri sintaks J yang istimewa, terutamanya penggunaan garis bawah untuk nombor negatif (seperti _3
dan bukannya -3
), telah menarik perhatian beberapa pengomen. Pilihan yang tidak konvensional ini berasal daripada hubungan J dengan APL, yang menggunakan aksara khas (¯) untuk penafian. J menggunakan garis bawah sebagai alternatif yang serasi dengan ASCII. Bahasa ini juga menggunakan garis bawah dengan cara unik untuk mewakili infiniti (_
) dan infiniti negatif (__
), pendekatan yang mengurangkan keperluan untuk pengendalian pengecualian dalam pengiraan tertentu.
Saya baru-baru ini menjadi terpesona dengan J... Tetapi ia terus berulang kepada saya dan saya berhenti sejenak untuk memikirkan J pada masa-masa yang paling pelik. Apabila saya menggunakan lebih banyak bahasa, saya menjadi lebih terpesona dengannya.
Ciri-ciri Utama Bahasa J
- Bahasa pengaturcaraan berorientasikan tatasusunan seperti APL
- Bahasa berfungsi yang menyokong pengaturcaraan tacit (gaya bebas titik)
- Sintaks unik untuk mewakili:
- Nombor negatif:
_3
(menggunakan garis bawah dan bukannya tanda tolak) - Infiniti:
_
(satu garis bawah) - Infiniti negatif:
__
(dua garis bawah)
- Nombor negatif:
- Nombor kompleks diwakili sebagai:
2j3
- Kata keterangan untuk meningkatkan kata kerja (fungsi), termasuk:
/
(Sisip)\
(Awalan)*.
(Setiap)@:
(Pada)&:
(Di Bawah)
Pengalaman Pendidikan dengan J Kekal Berkesan
Satu topik yang sangat menarik melibatkan seorang pengomen yang mengingati pengalaman mereka belajar J semasa ijazah pengkomputeran mereka dua puluh tahun yang lalu. Walaupun mendapati ia mengelirukan pada masa itu dan menghadapi pepijat pentafsir, mereka menyatakan ketertarikan yang berterusan terhadap bahasa tersebut yang telah bertahan selama beberapa dekad. Sentimen ini menggambarkan bagaimana pendekatan J yang tidak konvensional terhadap pengaturcaraan boleh meninggalkan kesan yang berkekalan, walaupun pendedahan awal adalah mencabar atau tidak lengkap.
Pengaturcaraan Tatasusunan Mengilhamkan Pemikiran Rekabentuk Bahasa
Perbincangan juga menjurus ke arah falsafah rekabentuk bahasa, dengan beberapa pengomen mempertimbangkan paradigma pengaturcaraan ideal yang mungkin menggabungkan pengaturcaraan tatasusunan (seperti J) dengan pendekatan konkatenatif (seperti FORTH). Ini mencetuskan sebutan tentang Uiua, bahasa berorientasikan tatasusunan lain yang mungkin memenuhi keperluan tersebut, menunjukkan bagaimana J terus mengilhamkan pemikiran tentang rekabentuk dan pelaksanaan bahasa pengaturcaraan.
Bagi mereka yang berminat untuk mencuba J tanpa persediaan yang meluas, seorang pengomen mencadangkan untuk menambah direktori .devcontainer
dengan Dockerfile untuk membolehkan eksperimen berasaskan pelayar melalui GitHub Codespaces, menunjukkan usaha berterusan komuniti untuk menjadikan bahasa yang luar biasa ini lebih mudah diakses kepada pengaturcara yang ingin tahu.
Rujukan: Understanding J