Tüm INTERCAL-72 stilleri için tek bir RESUME kullanın
"İf" ifadesinin eşdeğerini yazmanız gerekiyorsa, INTERCAL-72 kodunu kullanan normal yöntem NEXT
iki katına çıkar ve sonra hesaplanır RESUME
. (Modern kodda, genellikle bir bilgisayar COME FROM
daha iyi olacaktır, ancak bu ipucu kodunuzun tercih ettiğini varsayar NEXT
.) Birincisi NEXT
için "bay" ın bir dalından diğerine atladığı için neredeyse kesinlikle bayt ödemek zorundasınız . NEXT
A. Aynı yere giden çok sayıda "if" ifadeniz yoksa , ikincisini paylaşmak da önemsizdir #1
. Ancak, RESUME
programın herhangi bir yerinde olabilir (çünkü kontrol onu anında herhangi bir yerde bırakacaktır).
Bunu ele almanın iki yolu vardır. Çok sayıda "if" ifadeniz varsa, RESUME
büyük olasılıkla tek basamaklı bir satır numarasını garanti eder, böylece ikinci NEXT
ifadeniz mümkün olduğunca kısa olabilir. Mümkünse, RESUME
kodunuzda doğal olarak oluşacak bir bilgisayar yapmaya çalışın (kuşkusuz, bu zor, çünkü kodun "normal akışında" görünmek için nadirdir NEXT
); bu durumda tek maliyet satır numarasıdır. Tüm bunlar için tek bir boolean değişkeni kullanmanız gerekir NEXT
; buradaki evrensel fikir birliği .5
, çoğunlukla standart kütüphanenin boole dönüş değerleri için kullandığı değişken olduğu için kullanmaktır.
Alternatif olarak, standart kütüphanenin belgelenmemiş (teknik olarak belgelenmemiş, çünkü INTERCAL belgelerine bir ipucu attım) özelliğinden faydalanmak mümkündür. A'nın merkezi konumu RESUME
çok kullanışlı olduğundan, standart kitaplık dahili olarak bir tane kullanır. INTERCAL Çizgi numaraları geneldir (kuralları Namespacing ile ancak hangi ne yaptığınızı biliyorsanız kırılabilir) sen böylece, NEXT
sen hakkı standart kütüphane iç yapıları içine istiyorsanız ve özellikle, kutu NEXT
için onun merkezi DEVAM konumu . Bu, standart kütüphane değiştirmelerinin mevcut programları bozmamak için onu uygulamak zorunda olduğu mevcut INTERCAL kodunda yeterince popülerdir.
Söz konusu satır (uygulamaya bağlı olarak, kelimenin tam anlamıyla veya etkili):
(1001) DO RESUME .5
Bunu kullanmamanın temel nedeni uzun satır numarasıdır; eğer çok sayıda INTERCAL-72 stili yapmanız gerekiyorsa, daha kısa bir sayı vermek için kendiniz kullanmak daha iyi olacaktır.
Tabii ki, teknikleri birleştirerek,
(9)DO(1001)NEXT
ki bu marjinal olarak
(9)DORESUME.5
ve booleanların olma avantajına sahiptir #2
ve #3
(okunması daha zordur, ancak normalde üretilmesi daha kolaydır). Aslında, işlemek için ekstra kod koymaya bile değer olabilir #0
ve #1
çok fazla COME FROM
kullanacaksanız (ancak gereksinimleriniz çok garip olmadığı sürece hesaplanmış muhtemelen bu durumda daha iyi çalışacaktır).