erlang:lenght() 是怎么工作的

erlang:lenght() 是如何工作的?list_length(Eterm list){int i 0while(is_list(list)) {i++list CDR

erlang:lenght() 是如何工作的

?

list_length(Eterm list){    int i = 0;    while(is_list(list)) {i++;list = CDR(list_val(list));    }    if (is_not_nil(list)) {return -1;    }    return i;}

?

?

其实内部也是做了一个循环,不过这种底层的循环肯定会比erlang代码执行速度要快。