1

我有一个要递归迭代的块

folders: [
    Chrome [
        content [
            preferences
            prefpages
        ]
    ]
    icons [
        default
    ]
    locale [
        en-EN [
            csbar
        ]
    ]
    skin
]

使用此功能:

iterate-folder: func [folders [block!]][
    foreach folder folders [
        either not block? folder [
            probe folder
            temp: folder
            input
        ] [
            print "folder"
            probe folder
            print "folders"
            probe folders
            probe select folders folder
            type-folder: type? select folders folder
            probe type-folder
            input
            iterate-folder select folders folder
        ]
    ]
]

但是由于我看不到的愚蠢原因,探测文件夹在上面没有返回,所以它不起作用。

4

1 回答 1

3

就是选择文件夹文件夹搞砸了,我认为.....文件夹已经是您想要的数据结构。

试试这个(还要注意询问而不是输入只是为了在那时添加一个调试字符串):

iterate-folder: func [folders [block!]][
    foreach folder folders [
        either not block? folder [
            probe folder
            temp: folder
            ask "continue/not block"
    ] [
            print "folder"
            probe folder
            print "folders"
            probe folders
            probe select folders folder
            type-folder: folder
            probe type-folder
            ask "continue/block"
            iterate-folder folder 
        ]
    ]
]
于 2010-03-21T12:25:03.847 回答