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代码执行速度要快。

你可能感兴趣的:(工作,erlang)