From c5576fcc8003280489c0aa0323a966e6de33e31f Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Thu, 17 Aug 2023 13:41:43 +0800 Subject: vim-patch:8.2.3848: cannot use reduce() for a string Problem: Cannot use reduce() for a string. Solution: Make reduce() work with a string. (Naruhiko Nishino, closes vim/vim#9366) https://github.com/vim/vim/commit/0ccb5842f5fb103763d106c7aa364d758343c35a Omit tv_get_first_char() as it doesn't really save much code. Co-authored-by: rbtnn --- runtime/lua/vim/_meta/vimfn.lua | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'runtime/lua/vim') diff --git a/runtime/lua/vim/_meta/vimfn.lua b/runtime/lua/vim/_meta/vimfn.lua index 4b90a9e3c0..4fe9093666 100644 --- a/runtime/lua/vim/_meta/vimfn.lua +++ b/runtime/lua/vim/_meta/vimfn.lua @@ -6551,9 +6551,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 ---- |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 @@ -6564,6 +6564,7 @@ function vim.fn.readfile(fname, type, max) end --- echo reduce([1, 3, 5], { acc, val -> acc + val }) --- echo reduce(['x', 'y'], { acc, val -> acc .. val }, 'a') --- echo reduce(0z1122, { acc, val -> 2 * acc + val }) +--- echo reduce('xyz', { acc, val -> acc .. ',' .. val }) --- < --- --- @param object any -- cgit