如何获取当前绑定的顶点数组对象的名称?
我查看了手册,但找不到与glGet()一起使用的枚举.
GHC手册说明了GHCI中的一元结合:
两种类型的绑定之间的另一个重要区别是monadic绑定(p < - e)是严格的(它评估e),而使用let形式,表达式不会立即评估:
(从这里)
但我可以在GHCI中做到这一点:
?: x <- return $ error ":("
?: :sprint x
x = _
Run Code Online (Sandbox Code Playgroud)
这似乎表明monadic绑定并不严格.我错过了什么?
大家,我对haskell很新.我是一名c ++程序员.如何在特定模块中找到详细的功能列表,例如在默认的"前奏"模块中?以及如何找出这些功能在ghci环境中如何工作?即.是否有命令找出"Prelude"中的所有功能?谢谢.
我正在尝试使用着色器,但它一直告诉我片段和顶点着色器上的这个错误:
error(#132) Syntax error: "<" parse error
Run Code Online (Sandbox Code Playgroud)
顶点着色器
varying vec4 diffuse;
varying vec4 ambient;
varying vec3 normal;
varying vec3 halfVector;
void main()
{
normal = normalize(gl_NormalMatrix * gl_Normal);
halfVector = gl_LightSource[0].halfVector.xyz;
diffuse = gl_FrontMaterial.diffuse * gl_LightSource[0].diffuse;
ambient = gl_FrontMaterial.ambient * gl_LightSource[0].ambient;
ambient += gl_LightModel.ambient * gl_FrontMaterial.ambient;
gl_Position = ftransform();
}
Run Code Online (Sandbox Code Playgroud)
片段着色器
varying vec4 diffuse,ambient;
varying vec3 normal,halfVector;
void main()
{
vec3 n,halfV,lightDir;
float NdotL,NdotHV;
lightDir = vec3(gl_LightSource[0].position);
vec4 color = ambient;
n = normalize(normal);
NdotL = max(dot(n,lightDir),0.0);
if (NdotL > …Run Code Online (Sandbox Code Playgroud) 我在TestCase中进行了大量测试.我想设置一个模拟对象,在大多数测试中返回相同的值,但在一些测试中我想自定义该值.
我的想法是创建一个set_up()方法(我无法在自动调用的内部设置期望setUp()),并在每次测试开始时手动调用它.在这个方法中,我会设置默认的返回值,然后在需要自定义返回值的少数测试中,我会第二次调用expect,并希望覆盖默认的返回值.这不起作用,返回值不会被覆盖.
这是一个简化的例子:
<?php
class SomeClass {
function someMethod() {
}
}
class SomeTest extends PHPUnit_Framework_TestCase {
private $mock;
function set_up() {
$this->mock = $this->getMockBuilder('SomeClass')
->disableOriginalConstructor() // This is necessary in actual program
->getMock();
$this->mock->expects($this->any())
->method('someMethod')
->will($this->returnValue(1));
}
function test() {
$this->set_up();
$this->mock->expects($this->any())
->method('someMethod')
->will($this->returnValue(2));
$this->assertEquals(2, $this->mock->someMethod());
}
}
Run Code Online (Sandbox Code Playgroud)
看起来应该可以通过阅读如何使用PHPUnit重置Mock对象.
带有多个expected()调用的PHPUnit mock不能回答我的问题.
我使用的是phpUnit 4.2
我预计下面的代码会立即运行并退出,因为p它实际上从未使用过,但它运行了超过7分钟,然后似乎被操作系统杀死了.
{-# LANGUAGE DeriveFunctor #-}
import Control.Monad (liftM2)
main = print $ ((product' 1 >>= \p -> Nothing) :: Maybe Integer)
data Term f = In { out :: f (Term f) }
type Algebra f a = (f a -> a)
cata :: (Functor f) => Algebra f a -> Term f -> a
cata g t = g $ fmap (cata g) $ out t
type CoAlgebra f a = (a -> f a)
ana :: …Run Code Online (Sandbox Code Playgroud) 这就是我想做的事情:
object foo {
def bar = Array(1, 2, 3, 4, 5)
}
class foo (baz = bar) {
}
Run Code Online (Sandbox Code Playgroud)
这会导致编译器错误.还有另一种方法来实现这一目标吗?
我想创建一个具有类型约束的函数定义的实例,但我不想将类型约束添加到类中.
class Foo a where
f :: a b -> b
instance Foo Maybe where
f = fMaybe
fMaybe :: (Num a) => Maybe a -> a
fMaybe (Just i) = i+i
fMaybe _ = 0
Run Code Online (Sandbox Code Playgroud)
如何指定这是Maybe包含s 的实例Nums?
这有效:
{-# LANGUAGE MultiParamTypeClasses #-}
class Foo a b where
f :: a b -> b
instance Foo Maybe Int where
f = fMaybe
fMaybe :: (Num a) => Maybe a -> a
fMaybe (Just i) = i+i …Run Code Online (Sandbox Code Playgroud)