• [^] # Re: "Tail call optimization"

    Posté par (site web personnel) . En réponse au journal Chantonnons en récursion. Évalué à 2.

    Pour info en OCaml :

    let rec love () = blood ()
    and blood () = head ()
    and head () = love ()
    let _ = love ()
    
    

    Cela donne :

     00401ee0 <_camlTt__code_begin>:
     401ee0: b8 01 00 00 00 mov 0ドルx1,%eax
     401ee5: eb 19 jmp 401f00 <_camlTt__love_1030>
     401ee7: 89 f6 mov %esi,%esi
     401ee9: 8d bc 27 00 00 00 00 lea 0x0(%edi,%eiz,1),%edi
     00401ef0 <_camlTt__blood_1031>:
     401ef0: b8 01 00 00 00 mov 0ドルx1,%eax
     401ef5: eb e9 jmp 401ee0 <_camlTt__code_begin>
     401ef7: 89 f6 mov %esi,%esi
     401ef9: 8d bc 27 00 00 00 00 lea 0x0(%edi,%eiz,1),%edi
     00401f00 <_camlTt__love_1030>:
     401f00: b8 01 00 00 00 mov 0ドルx1,%eax
     401f05: eb e9 jmp 401ef0 <_camlTt__blood_1031>
     401f07: 89 f6 mov %esi,%esi
     401f09: 8d bc 27 00 00 00 00 lea 0x0(%edi,%eiz,1),%edi
    
    

    "La première sécurité est la liberté"