Körili ve kısmi uygulamayı kolayca destekleyen diller için, orijinal olarak Chris Okasaki'den gelen bir dizi zorlayıcı argüman vardır:
- Veri yapısını son bağımsız değişken olarak koyun
Neden? Daha sonra veriler üzerinde güzel bir şekilde işlemler oluşturabilirsiniz . Örn insert 1 $ insert 2 $ insert 3 $ s
. Bu durumdaki işlevler için de yardımcı olur .
"Kaplar" gibi standart kitaplıklar bu kuralı izler .
Bazen veri yapısını ilk sıraya koymak için alternatif argümanlar verilir, böylece kapatılabilir ve statik bir yapı üzerinde (örneğin arama) biraz daha özlü fonksiyonlar elde edilebilir. Bununla birlikte, geniş fikir birliği, özellikle sizi ağır bir şekilde parantez içine alınmış koda doğru ittiği için, bunun daha az bir kazanç olduğu yönünde görünüyor.
- En değişken argümanı en sona koyun
Özyinelemeli fonksiyonlar için, en çok değişen argümanı (örneğin bir biriktirici) son argüman olarak, en az değişen argümanı (örneğin bir fonksiyon argümanı) başlangıçta koymak yaygındır. Bu, son stil veri yapısı ile iyi bir uyum sağlar.
Okasaki görünümünün bir özeti Edison kütüphanesinde verilmiştir (yine başka bir veri yapısı kütüphanesi):
- Kısmi uygulama : Statik olma olasılığı daha yüksek olan argümanlar, kısmi uygulamayı kolaylaştırmak için genellikle diğer argümanlardan önce görünür.
- Koleksiyon en son görünür : Bir işlemin tek bir koleksiyonu sorguladığı veya mevcut bir koleksiyonu değiştirdiği tüm durumlarda, koleksiyon argümanı en son görünür. Bu, Haskell veri yapısı kitaplıkları için fiili bir standarttır ve API'ye bir derece tutarlılık kazandırır.
- En genel sıra : Bir işlemin birden fazla veri yapısında iyi bilinen bir matematiksel işlevi temsil ettiği durumlarda, bağımsız değişkenler, işlev için en genel bağımsız değişken sırasına uyacak şekilde seçilir.