Sadece böyle uygulamalar için bir sembol tanımlamanız gerekiyor:
let (@@@) f x = f x ;;
Sonra
let f x = x * 4;;
let g y = y + 2;;
let a = f @@@ g 3;;
print_int a;;
baskısını OCaml bir sonraki versiyon (3.13 veya 4.00) ara maddesi, kısmen uygulanan fonksiyonları oluşmasını önlemek uygulamalar için yerleşik ilkellerini sağlayacak 20.
Not yapar:
external (@@@) : ('a -> 'b) -> 'a -> 'b = "%apply"
external (|>) : 'a -> ('a -> 'b) -> 'b = "%revapply"
Sonuncusu, %apply
'un tam tersidir.
let ($) f x = f x ;;
let a = f $ g 3;; (* ok ! ??? *)
let a = f $ g $ g 3;; (* ERROR -> g is not an integer,
because OCaml computes (f $ g) first *)
Sadece Haskell gibi bir '$' operatörünü tanımlayabiliriz:: o OCaml ayrıştırıcı tanımında sola birleşim olduğu gibi
Not ($) kullanamazsınız let ($) fx = fx ;; – aneccodeal
Hayır, aslında, '$' kullanamazsınız. Bu temel örnek için çalışır, ancak eğer f $ g $ h x ' –