मैं कैसे बता सकता हूं कि ओकैमल किसी विशेष कार्य को पूंछ-पुनरावर्ती के रूप में पहचानता है या नहीं? विशेष रूप से, मैं पता लगाना चाहते हैं OCaml संकलक पहचानता है, तो नीचे दिए गए जेफरी का जवाब देने के लिए Short-circuited operators and tail recursionसत्यापित करें कि एक ओकैमल फ़ंक्शन पूंछ-रिकर्सिव
धन्यवाद, मैं साधारण समारोह के साथ इस कोशिश की
let rec check_all l =
match l with
| [] -> true
| hd :: tl ->
hd && check_all tl
और वास्तव में, यह करने के लिए अनुकूलन करता है:
camlTest__check_all_1008:
.cfi_startproc
.L102:
cmpl $1, %eax
je .L100
movl (%eax), %ebx
cmpl $1, %ebx
je .L101
movl 4(%eax), %eax
jmp .L102
.align 16
.L101:
movl $1, %eax
ret
Btw: कैसे आपको लगता है कि अच्छा विधानसभा उत्पादन मिला? – aneccodeal
जेफरी का उत्तर नीचे देखें: ocamlopt -c -S – dspyz