我可以在 map 中指定其他参数吗?
例如,我有以下代码:
def f(a, b):
return a + b
l = [1, 2, 3]
ll = map(f, l)
Run Code Online (Sandbox Code Playgroud)
我怎样才能给map上面的一个参数,以便每个元素ll是一个元素l和给定参数的总和?
例如,如果我可以使用类似的东西map(f(2,), l),我会得到[3, 4, 5]结果。
我知道我可以通过列表理解或 for 循环获得相同的结果,但我只想知道是否有可能以某种map方式做到这一点。
使用 Python 3.4。试图从 IF 语句中调用返回布尔值的函数 prime/2——总是 True 或 False。该函数运行起来很昂贵,所以我只想在我知道需要它时才调用它,因此从决策点内调用。被调用的函数不能可靠地返回 True/False。有时返回值为 None,此时测试失败。我使用 Python 的 IDLE 及其调试器。我调用 primes(2, 5, []) 并逐步执行代码。当 prime/2 到达行 elif n <= p 而 n = 5 和 p = 5 时,调试器显示 prime/2 返回 True,正如它应该的那样,但 primes/3 elif prime(m, 2) 中的行需要一个None 的值。那时我的测试失败了。我的代码:
def primes(m, n, l): # the calling function
if m > n: # creates a list of primes from
print(l, end='\n') # m through n, inclusive
elif m < 2:
primes(2, n, l)
elif m == 2: …Run Code Online (Sandbox Code Playgroud) python functional-programming if-statement function python-3.x
我被要求为大学学习一些球拍,最终将不得不用树结构和数据集做一些相当复杂的事情。我才刚刚开始,即使使用Racket docs,google和SO,也无法理解此代码的工作方式。
我正在尝试编写一个带有三个数字参数并返回最大数的函数,这就是我所拥有的:
(define (mymax x1 x2 x3)
(cond
((and (x1 > x2) (x1 > x3)) x1)
(else (and (x2 > x1) (x2 > x3)) x2)
(else (and (x3 > x1) (x3 > x2)) x3)
))
(print (mymax 10 5 1))
Run Code Online (Sandbox Code Playgroud)
所以...
很抱歉,如此无知,但这只是没有道理,对这些要点的任何帮助都将是一个巨大的帮助
我想为我的自定义数据类型实现幂函数。我的意思是具有以下签名的功率 (^):
(^) :: (Num a, Integral b) => a -> b -> a
Run Code Online (Sandbox Code Playgroud)
我的意思是我的数据类型MyData应该是 instance of Num,所以我可以写
x :: MyData
...
y = x ^ b
Run Code Online (Sandbox Code Playgroud)
其中 b 是一些Integral。当我们需要一个类的功能时,这很容易
(+), (-), (*) :: (Num a) => a -> a -> a
Run Code Online (Sandbox Code Playgroud)
我们只是写
instance Num MyData where
(*) x y = someFunc x y
Run Code Online (Sandbox Code Playgroud)
但我不知道如何定义它,因为还有Integral b. 这种语法应该是这样的
instance (Integral b) => Num MyData b where
(^) x y = someFunc x y
Run Code Online (Sandbox Code Playgroud)
但是我已经尝试了一百种这样的变体,但没有任何效果。数小时的谷歌搜索也无济于事。
假设有如下图所示:
Map<String, List<String>> myMap =
{
k1: [ v1, v2, v3, v3],
k2: [ v1, v2],
k3: [ v1, v2, v6, v7]
}
Run Code Online (Sandbox Code Playgroud)
我想找到所有键通用的值。
List<String> commonValues = {v1,v2}
Run Code Online (Sandbox Code Playgroud)
我想了解使用 java 8 的有效方法。我可以在 java 5 中使用 for 循环实现相同的效果,但我确信 Java 8 有更好的方法来做到这一点。
如果可以x被 整除y,我想模式匹配,返回 true 但我似乎语法错误并且它一直崩溃。
def isDivisible (x: Int, y: Int) :Boolean = Int match {
case (x % y == 0) => true
case _ => false
}
isDivisible(10, 5)
Run Code Online (Sandbox Code Playgroud)
将方程作为个案的正确方法是什么
只是寻找这个函数类型的解释,请
f x y z = x y (y z)
前奏说的是
f :: ((b -> a) -> a -> c) -> (b -> a) -> b -> c
但我无法用任何已知的方法得到那个结果 ¬¬
此致。
我很难理解 Haskell 中的类型创建。我试图理解为什么下面的 Haskell 函数返回一个类型而不是一个值:
data Exp = Enum Int
data Val = Vnum Int
eval :: Exp -> Val
eval (Enum x) = Vnum x
x :: Exp
x = Enum 2
Run Code Online (Sandbox Code Playgroud)
当我运行'eval x'时,解释器返回'eval x :: Val',而不是像我期望的那样返回2。Enum 和 Vnum 只是标签,所以基本上,eval 函数以一个“表达式”作为参数,它实际上只是一个整数,并返回一个“值”,它也只不过是一个整数。
就像,当然 eval x 返回一个 Val,但为什么函数实际上不计算值并返回它?我的印象是答案在我的脸上,但与此同时,我必须遗漏一些基本概念,这使我无法注意到可能很明显的事情。
在此先感谢您的帮助!
当我尝试|>在 elm 中使用运算符时出现错误
kl : List Float
kl =
List.map toFloat (List.range 1 10)
Run Code Online (Sandbox Code Playgroud)
kll : Float
kll =
let
half x =
x / 2
in
List.sum (List.map half (List.map toFloat (List.range 1 10)))
Run Code Online (Sandbox Code Playgroud)
下面的代码我使用|>并得到一个错误:
klpipe : List Float
klpipe =
1 10 |> List.range |> toFloat |> List.map
Run Code Online (Sandbox Code Playgroud) 长话短说,我有以下课程:
public class FlowBasePipeline<T>
{
private List<StepBaseBusiness<T>> stepList = new List<StepBaseBusiness<T>>();
public void Push(StepBaseBusiness<T> step)
{
stepList.Add(step);
}
public void Trigger(T result)
{
foreach (var step in stepList )
{
result = step.Execute(result);
if (!result.IsSuccess)
{
break;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找的是强迫程序员首先调用Push方法,然后让他们访问Trigger方法,在这种情况下不允许以下场景
var pipeline=new FlowBasePipeline<MyStepResult>();
pipeline.Trigger()// Trigger method is not recognized
Run Code Online (Sandbox Code Playgroud)
我们应该首先调用Push方法
var pipeline=new FlowBasePipeline<MyStepResult>();
pipeline.Push(new MyStep()).Trigger()//Now Trigger is recognized
Run Code Online (Sandbox Code Playgroud)
我所做的:
我按如下方式应用了显式接口方法实现以使其工作:
public interface IBasePipeline<T> where T:BaseResult,new()
{
void Trigger();
IBasePipeline<T> Push(StepBaseBusiness<T> step);
} …Run Code Online (Sandbox Code Playgroud) haskell ×3
function ×2
python ×2
types ×2
boolean ×1
c# ×1
declarative ×1
elm ×1
hashmap ×1
if-statement ×1
java ×1
java-8 ×1
java-stream ×1
jvm ×1
logic ×1
map ×1
python-3.x ×1
racket ×1
scala ×1