vim-patch:partial:8.2.3849: functions implementing reduce and map are too long

Problem:    Functions implementing reduce and map are too long.
Solution:   Use a function for each type of value.  Add a few more test cases
            and add to the help. (Yegappan Lakshmanan, closes vim/vim#9370)

389b72196e

Partial port as this doesn't include handling for non-materialized List.

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
This commit is contained in:
zeertzjq
2023-08-17 14:12:24 +08:00
parent c5576fcc80
commit b193674b4a
6 changed files with 418 additions and 346 deletions

View File

@@ -2017,8 +2017,8 @@ function vim.fn.filewritable(file) end
--- of the current item. For a |Dictionary| |v:key| has the key
--- of the current item and for a |List| |v:key| has the index of
--- the current item. For a |Blob| |v:key| has the index of the
--- current byte.
---
--- current byte. For a |String| |v:key| has the index of the
--- current character.
--- Examples: >vim
--- call filter(mylist, 'v:val !~ "OLD"')
--- <Removes the items where "OLD" appears. >vim
@@ -4937,7 +4937,8 @@ function vim.fn.log10(expr) end
--- of the current item. For a |Dictionary| |v:key| has the key
--- of the current item and for a |List| |v:key| has the index of
--- the current item. For a |Blob| |v:key| has the index of the
--- current byte.
--- current byte. For a |String| |v:key| has the index of the
--- current character.
--- Example: >vim
--- call map(mylist, '"> " .. v:val .. " <"')
--- <This puts "> " before and " <" after each item in "mylist".
@@ -6551,9 +6552,9 @@ function vim.fn.readdir(directory, expr) end
function vim.fn.readfile(fname, type, max) end
--- {func} is called for every item in {object}, which can be a
--- |String|, |List| or a |Blob|. {func} is called with two arguments:
--- the result so far and current item. After processing all
--- items the result is returned.
--- |String|, |List| or a |Blob|. {func} is called with two
--- arguments: the result so far and current item. After
--- processing all items the result is returned.
---
--- {initial} is the initial result. When omitted, the first item
--- in {object} is used and {func} is first called for the second