小编Sam*_*ter的帖子

Haskell,在函数中乘以Int和Float

为什么在ghci中我可以输入:

5.0 * (3 - 1)
> 10.0
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试在.hs文件中创建一个函数并将其加载到:

test :: Float -> Int -> Int -> Float
test a b c = a * (b - c)
Run Code Online (Sandbox Code Playgroud)

我遇到了错误?"无法将预期类型'Float'与推断类型'Int'匹配?我如何编写一个函数,它接受一个浮点和2个整数参数并对它们执行上述操作?

我正在使用ghci v6.12.1,如果这有所作为...

haskell types

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

Pythonic实现数据类型的方法(Python 2.7)

我的大部分编程经验都是使用C++.受到Bjarne Stroustrup 在这里的讲话的启发,我最喜欢的编程技术之一是"类型丰富"的编程; 开发新的健壮数据类型,不仅可以通过将功能包装到类型中来减少我必须编写的代码量(例如向量添加,而不是newVec.x = vec1.x + vec2.x; newVec.y = ...等,我们可以使用newVec = vec1 + vec2),但也会在编译时通过强类型系统揭示代码中的问题.

我在Python 2.7中进行的最近一个项目需要具有上限和下限的整数值.我的第一直觉是创建一个新的数据类型(类),它将具有与python中的普通数字相同的行为,但始终在其(动态)边界值内.

class BoundInt:
    def __init__(self, target = 0, low = 0, high = 1):
        self.lowerLimit = low
        self.upperLimit = high
        self._value = target
        self._balance()

    def _balance(self):
        if (self._value > self.upperLimit):
            self._value = self.upperLimit
        elif (self._value < self.lowerLimit):
            self._value = self.lowerLimit
        self._value = int(round(self._value))

    def value(self):
        self._balance()
        return self._value

    def set(self, target):
        self._value = target
        self._balance()

    def __str__(self):
        return str(self._value)
Run Code Online (Sandbox Code Playgroud)

这是一个好的开始,但它需要像这样访问这些BoundInt类型的内容

x = …
Run Code Online (Sandbox Code Playgroud)

python oop types

8
推荐指数
1
解决办法
705
查看次数

如何调试LLVM3.2 Plugin Assertion错误

我将为LLVM 2.9编写的LLVM插件(LLFI)移植到最新版本的LLVM/Clang.

在使用断言启用LLVM3.2构建测试我的插件时,我收到以下错误:

opt: /home/kzvr/ubc/llfi/llvm3/llvmsrc/lib/IR/Instructions.cpp:281: 
 void llvm::CallInst::init(llvm::Value*, llvm::ArrayRef<llvm::Value*>, 
 const llvm::Twine&): Assertion `(i >= FTy->getNumParams() || 
 FTy->getParamType(i) == Args[i]->getType()) && "Calling a function with a bad
 signature!"' failed.
0  opt             0x00000000017931a6 llvm::sys::PrintStackTrace(_IO_FILE*) + 38
1  opt             0x0000000001793423
2  opt             0x0000000001792e7b
3  libpthread.so.0 0x00007f0c0279fff0
4  libc.so.6       0x00007f0c018a91b5 gsignal + 53
5  libc.so.6       0x00007f0c018abfc0 abort + 384
6  libc.so.6       0x00007f0c018a2301 __assert_fail + 241
7  opt             0x00000000016e78c4 llvm::CallInst::init(llvm::Value*, llvm::ArrayRef<llvm::Value*>, llvm::Twine const&) + 402
8  LLFI.so         0x00007f0c0165adcb
9  LLFI.so         0x00007f0c0165aa83
10 LLFI.so         0x00007f0c016581c5
11 opt …
Run Code Online (Sandbox Code Playgroud)

c++ llvm clang

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

在 JDK8 for Arm 中找不到 JavaFX

我在我的 beaglebone black 上下载并安装了适用于 ARM 的 JDK8u33,并且根据此文档(http://docs.oracle.com/javase/8/embedded/jdk-arm-8u6/index.html)包含并支持 javafx。

但是,我在 JRE 或 JDK 中找不到 jfxrt.jar,并且在简单的 javafx 程序上使用 javac 生成的“javafx.application”不是一个包。

是什么赋予了?

arm javafx java-8 beagleboneblack

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

标签 统计

types ×2

arm ×1

beagleboneblack ×1

c++ ×1

clang ×1

haskell ×1

java-8 ×1

javafx ×1

llvm ×1

oop ×1

python ×1