Seberapa berguna operator infiks dalam bahasa pemrograman? Apakah mereka sebanding dengan kompleksitas ekstra yang mereka berikan? Bisakah Anda memberikan contoh di mana operator infiks lebih cocok untuk masalah yang tidak dapat ditangani dengan hanya membebani operator normal?
programming-languages
syntax
operators
Casebash
sumber
sumber
arg1.method(arg2)
daripadamethod(arg1, arg2)
.Jawaban:
Saya pikir operator infiks berasal dari matematika.
Ini:
lebih mudah dibaca oleh kebanyakan orang
karena kebanyakan orang akrab dengan matematika.
Cukup menarik di Haskell Anda dapat melompat antara infiks dan awalan. Ini menggunakan fungsi yang sama "(+)":
dan ini menggunakan fungsi "elem" yang sama:
sumber
(+ 1 2)
jauh lebih mudah dibaca daripada1 + 2
. Paling tidak(+ 1 2 3 4 5)
lebih baik daripada1 + 2 + 3 + 4 + 5
.1 2 +
atau1 2 3 4 5 +
atau lebih biasanya untuk kasus terakhir1 2 + 3 + 4 + 5 +
. Sebenarnya ada keuntungan bagus bagi mereka yang memodelkan sistem berbasis tumpukan dengan sempurna, dan jarang (jika pernah?) Membutuhkan tanda kurung untuk menyesuaikan prioritas operator.Bahasa komputer dirancang untuk manusia, bukan mesin. Dan manusia lebih terbiasa menginfiksasi operator daripada pre atau postfixes.
sumber
Satu-satunya alasan nyata bagi operator infiks adalah bahwa manusia pada umumnya menemukan mereka lebih mudah dibaca. Ini sebagian besar disebabkan oleh dua fakta:
2 * 2 = 4
dll.(some complex expression) + (some other complex expression)
Dari perspektif logis / mesin, operator infiks tidak benar-benar menambah nilai dan dalam beberapa kasus merupakan gangguan:
(* 1 2 3 4 5)
di Lisp misalnya bisa dibilang sintaks yang jauh lebih bersih untuk mengalikan satu set angka.sumber