首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过功能实现列表

通过功能实现列表
EN

Stack Overflow用户
提问于 2014-01-02 14:17:56
回答 1查看 80关注 0票数 1

我实现了这样的列表

(伪代码(或者稍微修改一下Python))

代码语言:javascript
复制
function nil():
    function inner(index):
        return null          // saying that the head of an empty list is null
    return inner

function cons(list, element):
    function inner(index):
        if index = 0:
            return element
        else:
            return list(index-1)
    return inner

function head(list):
    return list(0)

function tail(list):
    function inner(index):
        return list(index+1)
return inner

另外,作为奖励:

代码语言:javascript
复制
function map(list, f):
    if head(list) is null:
        return list
    else:
        return cons(map(tail(list), f), f(head(list)))

但是,这似乎是将列表实现为数组(或哈希表)--使用了一个名为index的参数。但是,我希望实现列表(使用函数),而不需要在内部使用索引。这个是可能的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-02 14:25:56

表示最接近链接列表,而不是数组:必须遍历每个元素,直到到达所需的元素为止。您只使用index作为寻址列表的一种方式。

为了获得一种更“忠实”的寻址方法,您可以将inner替换为isnilheadtail操作,就像名单的教会编码那样。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20884932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档