小编bwr*_*oga的帖子

如何获取当前绑定的顶点数组对象?

如何获取当前绑定的顶点数组对象的名称?

我查看了手册,但找不到与glGet()一起使用的枚举.

opengl opengl-4 vao

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

GHCI monadic绑定严格吗?

GHC手册说明了GHCI中的一元结合:

两种类型的绑定之间的另一个重要区别是monadic绑定(p < - e)是严格的(它评估e),而使用let形式,表达式不会立即评估:

(从这里)

但我可以在GHCI中做到这一点:

?: x <- return $ error ":("
?: :sprint x
x = _
Run Code Online (Sandbox Code Playgroud)

这似乎表明monadic绑定并不严格.我错过了什么?

haskell ghci

4
推荐指数
2
解决办法
194
查看次数

如何使用 :?在ghci中查找所有功能列表和手册

大家,我对haskell很新.我是一名c ++程序员.如何在特定模块中找到详细的功能列表,例如在默认的"前奏"模块中?以及如何找出这些功能在ghci环境中如何工作?即.是否有命令找出"Prelude"中的所有功能?谢谢.

haskell

3
推荐指数
2
解决办法
1145
查看次数

GLSL - 奇怪的语法错误"<"

我正在尝试使用着色器,但它一直告诉我片段和顶点着色器上的这个错误:

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)

opengl shader glsl

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

如何重置PHPUnit模拟对象的期望

我在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

php phpunit unit-testing mocking

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

为什么catamorphism产生的未使用值被评估?

我预计下面的代码会立即运行并退出,因为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)

haskell lazy-evaluation recursion-schemes

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

使用方法返回值作为Scala中的默认构造函数参数

这就是我想做的事情:

object foo {
    def bar = Array(1, 2, 3, 4, 5)
}
class foo (baz = bar) {
}
Run Code Online (Sandbox Code Playgroud)

这会导致编译器错误.还有另一种方法来实现这一目标吗?

scala

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

在实例声明中键入约束但不在类中键入

我想创建一个具有类型约束的函数定义的实例,但我不想将类型约束添加到类中.

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)

haskell

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