我正在自学Haskell,我想知道以下类型的签名:
Prelude> :t ($)
($) :: (a -> b) -> a -> b
Prelude>
Run Code Online (Sandbox Code Playgroud)
我应该如何解释(没有双关语意)?
一个半相似的结果也证明是令人费解的:
Prelude> :t map
map :: (a -> b) -> [a] -> [b]
Prelude>
Run Code Online (Sandbox Code Playgroud) 在具有GHC Haskell平台(2013.2.0.0)的WinXP(sp3)机器上,尝试编译代码会导致以下错误,除非有问题的文件包含在子目录中,即不是root('C:\'):
Prelude> :l doubleMe.hs
[1 of 1] Compiling Main ( doubleMe.hs, interpreted )
*** Exception: CreateDirectory ".": permission denied (Access is denied.)
Run Code Online (Sandbox Code Playgroud)
有谁知道这是一个错误吗?如果是这样,它已经持续存在多个版本的GHC,我开始怀疑在Windows机器上的子目录中存储haskell代码是必要的.错误是否可以在*nix机器上重现?
谢谢.
〜凯特琳
我只是在学习ANSI Common Lisp(在Win32机器上使用clisp),我想知道mapcar是否可以使用传入的函数作为正式参数?请参阅以下内容:
(defun foo (fn seq)
(mapcar #'fn seq))
Run Code Online (Sandbox Code Playgroud)
在我看来,这将提供比以下更大的灵活性:
(defun mult (i)
(* i 2))
(defun foo ()
(mapcar #'mult '(1 2 3)))
Run Code Online (Sandbox Code Playgroud) 我不明白导入库或模块的三种方法之间的区别.正如我目前所理解的那样,
load 'file.rb'
Run Code Online (Sandbox Code Playgroud)
将外部文件的内容导入当前文件,而:
require 'file.rb'
Run Code Online (Sandbox Code Playgroud)
将执行相同的功能,但不会导入已导入的文件.
require_relative 'file.rb'
Run Code Online (Sandbox Code Playgroud)
类似于require,但它将加载仅在当前目录中的文件,而require将使用搜索路径$:来查找文件.我毫不怀疑我对这三种机制的理解是有缺陷的.有人可以提供一些澄清吗?
interface Shape {
public double area();
}
class Circle implements Shape {
private double radius;
public Circle(double r){radius = r;}
public double area(){return Math.PI*radius*radius;}
}
class Square implements Shape {
private int wid;
public Square(int w){wid = w;}
public double area(){return wid *wid;}
}
public class Poly{
public static void main(String args[]){
Shape[] s = new Shape[2];
s[0] = new Circle(10);
s[1] = new Square(10);
System.out.println(s[0].getClass().getName());
System.out.println(s[1].getClass().getName());
}
}
Run Code Online (Sandbox Code Playgroud)
为了理解多态的概念,我发现了以下文章(/sf/answers/322404071/),但我注意到Charlie使用未实现的方法创建了Shape类.
从我的代码可以看出,我将该类转换为接口,然后使用它来实例化一个匿名类,然后调用适当的方法.
有人能告诉我我的解决方案是否合理?你会以不同的方式编写代码吗?为什么在等号的两侧使用接口的功能与它一样?
谢谢.
凯特琳
我正在探索 PyTorch,但我不明白以下示例的输出:
# Initialize x, y and z to values 4, -3 and 5
x = torch.tensor(4., requires_grad = True)
y = torch.tensor(-3., requires_grad = True)
z = torch.tensor(5., requires_grad = True)
# Set q to sum of x and y, set f to product of q with z
q = x + y
f = q * z
# Compute the derivatives
f.backward()
# Print the gradients
print("Gradient of x is: " + str(x.grad))
print("Gradient of y is: " …Run Code Online (Sandbox Code Playgroud) 你好StackOverflowers.
这几乎肯定是关于对象实例化的一个非常基本的问题,但在下面的代码示例中:
List myList = new LinkedList();
Run Code Online (Sandbox Code Playgroud)
这是一种继承形式吗?换句话说,是否会读取这个LinkedList"是一个"List并因此继承List类中定义的方法?如果是这样,如果用户构造了他或她自己的两个类并使用与上面相同的语法,那么答案是否相同?
谢谢大家.
凯特琳
我完全有可能忽略了一些东西,但是当使用RSQLite包时,是否仍然可以在R脚本中使用特殊字符串":memory:"来加速数据检索?
我对一些人可能认为是一个基本问题的道歉.在以下简单代码中:
def greet(name):
def say_hi():
print('Preparing to greet...')
print('Hi', name, '!')
print('Greeting given.')
return say_hi
Run Code Online (Sandbox Code Playgroud)
当使用形式参数调用'greet'并且解释器遇到'say_hi'函数时,事件序列是什么.我看到对它的引用被返回(形成一个我假设的闭包?),但是内部函数是执行还是只是'读'而不是在程序员编写如下代码之前调用它:
f = greet('Caroline')
f()
Run Code Online (Sandbox Code Playgroud) 我需要绘制三条线(在一张图上),每条线代表一个实验室团队的数据(两个变量/团队).理想情况下,图形应该看起来美观(因此使用ggplot2!),但形式与下图所示的线图相似.我不明白如何使用gggplot2库将多行绘制到单个图形上.我目前对ggplot2库的知识/技能很低,但我在下面列出了我的初出茅庐的努力.
http://www.harding.edu/fmccown/r/#linecharts
编辑:每行由两个向量构成,如下所示:
temp = c(4, 25, 50, 85, 100)
enzyme_activity = c(0.543, 0.788, 0.990, 0.898, 0.882)
Run Code Online (Sandbox Code Playgroud)
在x轴上使用temp变量,每行使用不同的颜色,以便区分它们.
EDIT2:
amyA = c(0.091, 0.147, 0.202, 0.236, 0.074)
temp = c(4, 23, 37, 65, 100)
df = data.frame(temp, amyA)
ggplot(df, aes(x = temp, y = amyA, col = 'blue')) + geom_line()
Run Code Online (Sandbox Code Playgroud)
第二次编辑中的代码不会生成蓝线,并且图例完全错误.如果我用不同的数据重复两个ggplot调用,则只绘制一行.
haskell ×2
java ×2
oop ×2
python ×2
r ×2
common-lisp ×1
ggplot2 ×1
interpreter ×1
lisp ×1
pytorch ×1
ruby ×1
sqlite ×1
statistics ×1
types ×1
windows ×1