Gunakan RESUME tunggal untuk semua gaya INTERCAL-72 jika dibuat
Jika Anda perlu menulis yang setara dengan pernyataan "jika", metode normal menggunakan kode INTERCAL-72 adalah NEXTdua kali dan kemudian melakukan perhitungan RESUME. (Dalam kode modern, sering kali yang dihitung COME FROMakan lebih baik, tetapi tip ini menganggap kode Anda lebih disukai NEXT.) Anda hampir pasti harus membayar byte untuk yang pertama NEXT, karena ia melompat dari satu cabang "jika" ke yang lain. Berbagi yang kedua NEXTjuga nontrivial, kecuali jika Anda memiliki banyak pernyataan "jika" yang pergi ke tempat yang sama setelah melihat a #1. Namun, RESUMEbisa di mana saja di dalam program (karena kontrol akan meninggalkannya langsung di mana saja).
Ada dua cara untuk menangani ini. Jika Anda memiliki banyak pernyataan "jika", maka RESUMEkemungkinan waran nomor baris satu digit, sehingga NEXTpernyataan kedua Anda bisa sesingkat mungkin. Jika memungkinkan, cobalah untuk membuatnya menjadi komputasi RESUMEyang secara alami akan terjadi dalam kode Anda (memang, ini sulit, karena jarang bagi mereka muncul dalam "aliran normal" kode daripada NEXTdisunting ke); kemudian, satu-satunya biaya adalah nomor baris. Anda harus menggunakan variabel boolean tunggal untuk semua ini NEXT; konsensus universal di sini adalah untuk digunakan .5, sebagian besar karena itu adalah variabel yang digunakan perpustakaan standar untuk nilai pengembalian boolean.
Atau, dimungkinkan untuk menggunakan fitur tidak terdokumentasi (secara teknis tidak terdokumentasi, karena saya memasukkan petunjuk ke dalam dokumentasi INTERCAL ketika saya perhatikan) dari pustaka standar. Karena lokasi pusat untuk suatu RESUMEsangat berguna, perpustakaan standar menggunakannya secara internal. Nomor baris di INTERCAL yang global (dengan namespacing konvensi, namun yang dapat rusak jika Anda tahu apa yang Anda lakukan), sehingga Anda dapat NEXTlangsung ke internal perpustakaan standar jika Anda ingin, dan khususnya, dapat NEXTuntuk yang lokasi RESUME pusat . Ini cukup populer di kode INTERCAL yang ada sehingga penggantian perpustakaan standar cenderung harus menerapkannya untuk menghindari melanggar program yang ada.
Baris yang dimaksud adalah (baik secara harfiah atau efektif, tergantung pada implementasinya):
(1001) DO RESUME .5
Alasan utama untuk tidak menggunakan ini adalah nomornya yang panjang; jika Anda perlu melakukan banyak gaya INTERCAL-72 jika konstruksinya, akan lebih baik menggunakan gaya Anda sendiri untuk memberikan nomor yang lebih pendek.
Tentu saja, Anda dapat menggabungkan teknik, menulis sesuatu seperti
(9)DO(1001)NEXT
yang hanya sedikit lebih lama dari
(9)DORESUME.5
dan memiliki manfaat yang menjadi boolean #2dan #3(yang lebih sulit dibaca, tetapi biasanya lebih mudah untuk menghasilkan). Sebenarnya, bahkan mungkin ada baiknya memasukkan kode tambahan untuk menangani #0dan #1jika Anda akan banyak iffing (tapi dihitung COME FROMmungkin akan bekerja lebih baik dalam kasus ini kecuali persyaratan Anda sangat aneh).