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