标签: map-function

不从LISP/Scheme返回任何内容

基本上,我想使用map在列表中做选择

(define tbl '(a b c d))
(map (lambda (item 'c) (if (eq? item 'c) item (...what in else?) )))
Run Code Online (Sandbox Code Playgroud)

我想要的结果是

'(c)
Run Code Online (Sandbox Code Playgroud)

我尝试将其他部分留空,它抱怨需要其他部分.我试过了

(display "foo") 
Run Code Online (Sandbox Code Playgroud)

作为其他部分并得到了

(#<void> #<void> c #<void>)
Run Code Online (Sandbox Code Playgroud)

那很接近.

有什么方法可以使用地图来获得'(c)?我知道递归的方式,但我想知道地图是否也能做到.如果不是'(c),至少(## c#)但没有使用display hack来实现void类型的返回值.


lisp scheme functional-programming racket map-function

5
推荐指数
1
解决办法
546
查看次数

部分应用函数和currying,如何制作更好的代码而不是很多地图?

我是Haskell的初学者,我正在努力把握它.

我有以下问题:

我有一个函数,可以获得5个参数

f x y w z a = x - y - w - z - a
Run Code Online (Sandbox Code Playgroud)

我想申请它,而只是改变变量x110然而y,w,z而且a将永远是相同的.我实现的实现如下,但我认为必须有更好的方法.

假设我想使用:

x from 1 to 10
y = 1 
w = 2 
z = 3 
a = 4
Run Code Online (Sandbox Code Playgroud)

据此,我设法应用如下功能:

map ($ 4) $ map ($ 3) $ map ($ 2) $ map ($ 1) (map f [1..10])
Run Code Online (Sandbox Code Playgroud)

我认为必须有更好的方法将大量缺失参数应用于部分应用的函数,而不必使用太多的映射.

haskell currying partial-application function-composition map-function

5
推荐指数
4
解决办法
360
查看次数

使用序列号在Javascript中映射数组

以下代码:

let myArray = Array.apply(null, {length: 10}).map(Number.call, Number);
Run Code Online (Sandbox Code Playgroud)

创建以下数组:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)

我只是不明白为什么.我无法在互联网上找到解释此行为的任何内容.有谁知道为什么这样做的方式呢?也许是一些文档的链接?

javascript arrays numbers map-function

5
推荐指数
3
解决办法
2324
查看次数

Julia,多次运行函数,将结果保存在数组中

我正在朱莉娅建立一个微观模拟模型.我已经建立了我的功能结构,它适用于1"人".我想编写脚本来通过模型运行100000多人,并将结果保存在一个位置.

最终我想并行执行此操作.

下面我已经包含了一个带有虚拟概率的简单工作版代码.

using Distributions

# Microsim function
function  MicroSim(start_age, stages)
  stage = 0
  age = start_age

  # Set all trackers to 0
  Death_tracker = 0
  Disease_tracker = 0

  # While loop
  while stage <= stages
    age = age

    ###########################################################
    # Probability of Death
    pD = 0.02

    if age == 100
      pD = 1.0
    else
      pD = pD
    end

    # Coin flip
    dist_pD = Bernoulli(pD)
    Died = rand(dist_pD, 1)

    if Died == [1]
      Death_tracker = 1
      # death tracker loop …
Run Code Online (Sandbox Code Playgroud)

parallel-processing function pmap julia map-function

5
推荐指数
1
解决办法
895
查看次数

PHP:寻找类似Java Stream API的东西

有没有一种办法的数组转换对象字符串数组使用PHP一些自定义的映射。喜欢:

$objs = array(o1, o2, o3);

...

$strings = conv($objs, function($o) -> $o->fieldXYZ);
Run Code Online (Sandbox Code Playgroud)

代替:

$objs = array(o1, o2, o3);

...

$strings = array();

foreach($objs as $obj) {
    $strings []= $obj->fieldXYZ;
}
Run Code Online (Sandbox Code Playgroud)

php lambda map-function

5
推荐指数
1
解决办法
1184
查看次数

懒惰评估地图

我最近读到mapPython 3 中的一个好处是它很懒.这意味着,做得更好

map(lambda x: x**2, range(10**100))
Run Code Online (Sandbox Code Playgroud)

而不是

[x**2 for x in range(10**100)]
Run Code Online (Sandbox Code Playgroud)

我很好奇的是,我如何能够使用这种懒惰.如果我生成地图对象,我怎么能访问结果操作/列表中的特定元素.在几乎每一个文档,map我所看到的,他们会做这样的事情print(map(...))for i in map(...)其中(据我所知)放弃懒概念,因为它隐含映射到一个列表转换.

我想我正在寻找的是能够以类似的懒惰方式使用地图对象,就像range我可以做的那样,懒散x = range(10**100)地生成x[10000]而没有巨大的计算负荷.

如果这个概念不存在,那么map懒惰的好处是什么?如果你总是需要把它转换成一个非懒惰的对象,比如列表,为什么map懒惰呢?

python lazy-evaluation map-function

4
推荐指数
1
解决办法
1968
查看次数

如何在 Javascript Set 上运行地图?

Javascript 有 anArray.prototype.map但似乎没有与集合等效的东西。在 Javascript 中在集合上运行地图的推荐方法是什么?

编辑:根据要求添加示例

users = new Set([1,2,3])

// throws an error: 
// Uncaugh TypeError: users.map is not a function
users.map(n => n*n)
Run Code Online (Sandbox Code Playgroud)

javascript functional-programming set map-function

4
推荐指数
1
解决办法
3991
查看次数

如何在 Python 中创建自己的 map() 函数

我正在尝试在 python 中创建内置的 map() 函数。这是我的尝试:

def mapper(func, *sequences):
   if len(sequences) > 1:
       while True:
          list.append(func(sequences[0][0],sequences[0][0],))
       return list
   return list
Run Code Online (Sandbox Code Playgroud)

但我真的很困惑,因为如果用户给出例如 100 个参数,我该如何处理这些参数?

python list map-function

4
推荐指数
1
解决办法
6324
查看次数

Python3:内置函数“map”有错误吗?

以下是我使用 Python 3.8.1(在 macOS Mojave、10.14.6 上,以及在其他一些平台上的 Python 3.7(或较旧版本))。我是计算新手,不知道如何请求改进语言,但我认为我发现了内置函数的奇怪行为map

随着代码的next(iter(()))提高,我期望从以下代码中StopIteration得到:StopIteration

tuple(map(next, [iter(())]))

令我惊讶的是,这默默地返回了元组()

StopIteration因此,当命中返回next的“空”迭代器时,地图对象的解包似乎停止了 iter(())。但是,我认为异常处理不正确,因为StopIteration在从列表中选择“空”迭代器(被 命中next)之前没有引发异常。

  1. 我对这种行为的理解正确吗?
  2. 这种行为是有意为之吗?
  3. 这种情况在不久的将来会改变吗?或者我怎样才能得到它?

编辑:如果我以不同的方式解包地图对象,例如 by list、 for 循环、在列表中解包、解包函数参数、 by set、 ,则行为类似dict。所以我相信这不是tuple,但这map是错误的。

编辑:实际上,在 Python 2 (2.7.10) 中,“相同”代码会引发 StopIteration. 我认为这是理想的结果(除了map在这种情况下不返回迭代器)。

python behavior built-in python-3.x map-function

4
推荐指数
1
解决办法
490
查看次数

在 Rust 中将结构的 Vec 映射到结构的另一个 Vec,无需克隆

我使用具有以下结构的库:

struct KeyValue1 {
    key: Vec<u8>,
    value: Vec<u8>,
}

fn get() -> Vec<KeyValue1> { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

我需要将此向量转换为具有以下结构的几乎相似的向量:

struct KeyValue2 {
    key: Vec<u8>,
    value: Vec<u8>,
}
Run Code Online (Sandbox Code Playgroud)

为了能够从一个向量转换为另一个向量,我目前使用以下代码:

let convertedItems = items.iter().map(|kv| -> KeyValue2{
  key: key.clone(),
  value: value.clone()
}).collect()
Run Code Online (Sandbox Code Playgroud)

虽然这有效,但它克隆了两个载体,效率很低。我不再需要原始items向量,因此我想将所有权从 转移KeyValue1KeyValue2,但我还没有找到方法来做到这一点。

struct closures iterator rust map-function

4
推荐指数
1
解决办法
2999
查看次数