Saya sadar bahwa lipatan-kiri menghasilkan pohon-pohon miring ke kiri dan lipatan-kanan menghasilkan pohon-pohon miring ke kanan, tetapi ketika saya meraih lipatan, terkadang saya terjebak dalam pikiran yang memicu sakit kepala mencoba menentukan jenis lipatan yang mana sesuai. Saya biasanya akhirnya melepas seluruh masalah dan melangkah melalui implementasi fungsi lipatan yang berlaku untuk masalah saya.
Jadi yang ingin saya ketahui adalah:
- Apa sajakah aturan praktis untuk menentukan apakah akan melipat ke kiri atau ke kanan?
- Bagaimana saya bisa dengan cepat memutuskan jenis lipatan yang akan digunakan mengingat masalah yang saya hadapi?
Ada contoh di Scala by Example (PDF) yang menggunakan lipatan untuk menulis fungsi yang disebut flatten yang menggabungkan daftar daftar elemen ke dalam satu daftar. Dalam hal ini, lipatan kanan adalah pilihan yang tepat (mengingat cara daftar tersebut digabungkan), tetapi saya harus memikirkannya sedikit untuk sampai pada kesimpulan itu.
Karena melipat adalah tindakan umum dalam pemrograman (fungsional), saya ingin dapat membuat keputusan semacam ini dengan cepat dan percaya diri. Jadi ... ada tips?