在OCaml中,[@tailcall]注释允许断言特定的函数调用是尾部调用(所以希望整个函数都是尾部递归的)。问题是:我到底应该把注解放在哪里?let rec f = function | x -> (f [@tailcall]) (x - 1) (* works like a charm *)let rec f = function | x -> (|>) (x - 1) f (* uh? *)
我可以从汇编代码中看到,后一个示例被编译
我注意到在Solaris ksh中支持tail +2,但是在Red Hat Linux中,会出现一个错误:tailcannot open `+2' for reading: No such file or directorybjbldd>> ps -p 2622,16589,11719,846 |tail但我想知道Linux tail是否也有类似的选项?