标签: map-function

为什么生成器不支持 map()?

这似乎完全自然的,我认为发电机,其功能非常像数组,应该支持非常基本的列表操作,如map()filter()reduce()。我错过了什么吗?

我为map它编写了代码,看起来很简单,但是将所有函数嵌入所有生成器中会更好:

let fancyGen = g => {
  let rv = function*() {
    for (let x of g) 
      yield x;
  }
  rv.map = function*(p) {
   for (let x of g) 
      yield p(x);
  } 
  return rv;
}
Run Code Online (Sandbox Code Playgroud)

我是生成器的新手,因此欢迎对代码提出任何意见。特别是,这是编写“身份生成器”的最佳方式吗?

iterator generator ecmascript-6 map-function

2
推荐指数
1
解决办法
460
查看次数

在perl中为两个元素使用"map()"有什么意义?

我已经看到了代码,其中只有两个相当静态的元素被映射,例如具有开始和结束日期的时间间隔,但是map()正在使用而不是用于映射的显式代码,例如

{ map { ... } qw(start end) }   # vs.
{ start => ..., end => ... }
Run Code Online (Sandbox Code Playgroud)

哪种方式更受欢迎,为什么?

map形态可能不那么简洁,但看起来更多的功能(如函数式编程),所以我想这就是为什么它可能优于明确的代码也许是更加干燥.

但是,它对我来说看起来不太清晰,因为后面有更多的逻辑,并且映射也应该效率较低,因为它调用a调用并包含更多的原子操作.

编辑
在编程中存在一个相互矛盾的目标:KISS(保持它{选择2来自:小,简单,愚蠢}).使用map稍微复杂的代码.

perl map-function

2
推荐指数
1
解决办法
69
查看次数

多个变量Javascript map()回调

我正在阅读关于es2015的一些内容,在我遇到这段代码时尝试了箭头语法的一些示例:

var odds = evens.map(v => v + 1);//I understand
var nums = evens.map((v,i) => v + i);//I don't understand
Run Code Online (Sandbox Code Playgroud)

evens初始化为[0,2,4,6]我得到[1,3,5,7]odds,我明白了.

但是我不明白第二个表达式的结果[0,3,6,9].基本上我不理解i在第二个例子中为变量分配了什么值.任何人都可以对此有所了解吗?

javascript arrays callback map-function

2
推荐指数
1
解决办法
1199
查看次数

在列表的每两个元素上映射一个函数

我需要一个只在每个其他元素上映射函数的函数,例如

(f inc '(1 2 3 4)) 
=> '(2 2 4 4)
Run Code Online (Sandbox Code Playgroud)

我提出了:

(defn flipflop [f l]
  (loop [k l, b true, r '()]
    (if (empty? k)
      (reverse r)
      (recur (rest k) 
             (not b) 
             (conj r (if b 
                       (f (first k)) 
                       (first k)))))))
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来实现这一目标?

clojure map-function

2
推荐指数
1
解决办法
294
查看次数

将字符串转换为字符强制我映射{$0},这是什么意思?

写一个 randomStringGenerator() 函数,我想出了这个:

private let characters = ("0123456789" + "abcdefghijklmnopqrstuvwxyz" +
  "ABCDEFGHIJKLMNOPQRSTUVWXYZ").characters.map{ $0 }

private func generateRandomChar() -> Character {
  let index = Int( arc4random_uniform( UInt32( characters.count)))
  return characters[index]
}

func generateRandomString(lenght: Int) -> String {
  var string = ""
  for _ in 0..<lenght {
    string.append(generateRandomChar())
  }
  return string
}
Run Code Online (Sandbox Code Playgroud)

请注意我使用的第二行"0123...".characters.map{$0},我对这个(工作)语法的使用感到困惑。绘制地图而不执行任何操作是什么意思?是否有用于相同目的的更解释性语法?

swift map-function

2
推荐指数
1
解决办法
863
查看次数

如何映射数组,使用 if 子句并过滤掉坏数据?

我有一堆单词,有些可能有也可能没有错别字。

potentialWords = ["hello", "lkasjdf", "hunry"]
Run Code Online (Sandbox Code Playgroud)

我想要做的是,返回所有有效单词的数组,以及那些能够使用我创建的函数自动更正的单词correctWord。它返回一组潜在的匹配项。所以"hunry"可能会回来["hungry", "hurry"]。我将选择第一个索引以获得最佳猜测。

然而有些话是无法纠正的!例如"lkasjdf"不会找到任何更正,但"hunry"会。

我正在尝试类似的东西:

potentialWords.map {
  if correctWord($0) != nil {
    return correctWord($0)[0]
  } 
}
Run Code Online (Sandbox Code Playgroud)

当然,这会抱怨并说我需要在 if 子句之外返回。我可以根据单词是否可以更正来过滤列表,然后映射过滤后的列表,重新检查哪些单词需要更正,但是这种correctWord功能方式运行次数太多,并且非常敏感。

我希望能够进行一次传递,并返回所有有效单词的数组,以及更正的单词。

PScorrectWord为简洁起见,我在 map 函数中调用了两次,但当然我会分配correctWord($0)给一个变量,然后如果它不是 nil,则取第一个索引并将其添加到新列表中。

reduce functional-programming filter swift map-function

2
推荐指数
1
解决办法
187
查看次数

将 map 与具有多个参数的函数一起使用

是否可以将 map 与带有多个参数的函数一起使用?

我想重复使用 map 的第二个和第三个参数作为函数的参数。如

mapF x y z = map (f y z) [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

因此,它会评估f与同yz的值,但x = 1x = 2x = 3等等。

haskell list partial-application higher-order-functions map-function

2
推荐指数
1
解决办法
4735
查看次数

jQuery 地图中的箭头函数

我正在尝试在 jQuery 的map函数中使用箭头函数。使用以下 titlesText 是正确的长度,但每个字符串都是空的:

let titles = $(panelBody).find('h4');
let titlesText = $(titles).map(title => $(title).text());
Run Code Online (Sandbox Code Playgroud)

我的 ES6 转译工作正常,jQuery 工作正常。有任何想法吗?

javascript jquery arrow-functions map-function

2
推荐指数
1
解决办法
533
查看次数

为什么将此递归映射函数仅应用于列表中的最后两个元素?

这是给出的问题:下表中的前8个元素是什么?

mystery = 0 : 10 : (map(+1)mystery)
Run Code Online (Sandbox Code Playgroud)

答案是 [0,10,1,11,2,12,3,13...]

但我认为答案应该是[0,10,1,11,1,11,2,12]。以下步骤显示了原因:

1)我们得到了; list,[0,10]因此在第一次应用该函数后,我们有了列表[ 0,10,1, 11] 2)现在有了一个列表[ 0,10,1,11]因此,在再次应用该函数后,结果列表应该是[0,10,1,11,1,11,2,12]

显然不是这样。谁能解释为什么?

haskell list lazy-evaluation lazy-sequences map-function

2
推荐指数
1
解决办法
113
查看次数

如何映射带有两个参数(而不是一个)的函数?

我有一个 Haskell 问题,我想出了一个解决方案,但我就是不能把笔写在纸上。

基本上我有一个函数calc,它接受一个Int并返回一个Float.

calc :: Int -> Int -> Float 
Run Code Online (Sandbox Code Playgroud)

在我的函数中,g我想将此函数应用于数组

g :: [Int] -> [Float]
Run Code Online (Sandbox Code Playgroud)

由于calc需要两个Int参数,我想消耗两个Ints( x作为数组的第一个索引和x+1第二个索引)。这将继续在(数组索引)[1][2], [2][3], [3][4]等上重复该函数。

calc :: Int -> Int -> Float 
Run Code Online (Sandbox Code Playgroud)

我试过在网上研究如何使用map,它基本上是这样说的?知道为什么代码不想编译,x+1甚至是可行的吗?

haskell map-function

2
推荐指数
1
解决办法
109
查看次数