小编Gre*_*g S的帖子

Haskell编码风格:map,fmap还是<$>?

有没有理由更喜欢以下其中一种符号而不是其他符号,或者这只是一个偏好问题?

map toLower "FOO"

fmap toLower "FOO"

toLower <$> "FOO"
Run Code Online (Sandbox Code Playgroud)

暂且不说:我意识到这<$>是一样的`fmap`.我是否正确的假设map只是一种不那么普遍的形式fmap

haskell functional-programming coding-style

36
推荐指数
2
解决办法
3353
查看次数

将变量传递给OpenGL GLSL着色器

我正在编写一个iPhone应用程序,它使用GLSL着色器对纹理进行转换,但有一点,我有点困难的是将变量传递给我的GLSL着色器.

我已经读过,可以让着色器读取OpenGL状态的一部分(我只需要对此变量进行只读访问),但我不确定该交换是如何发生的.

简而言之,我试图获得在片段着色器之外创建的浮点值,以便片段着色器可以访问(无论是传入还是从着色器内部读取).

感谢您提供的任何帮助/指示,非常感谢!

iphone opengl-es glsl

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

为什么Haskell异常只能在IO monad中捕获?

任何人都可以解释为什么异常可能会被抛出IO monad,但可能只会被捕获到它内部?

io monads haskell exception-handling

27
推荐指数
2
解决办法
2030
查看次数

是否有更有效的方法来获取32位整数的长度(以字节为单位)?

我想要一个以下小函数的快捷方式,其中性能非常重要(该函数被调用超过10.000.000次):

inline int len(uint32 val)
{
    if(val <= 0x000000ff) return 1;
    if(val <= 0x0000ffff) return 2;
    if(val <= 0x00ffffff) return 3;
    return 4;
} 
Run Code Online (Sandbox Code Playgroud)

有没有人有任何想法...一个很酷的bitoperation技巧?感谢您的帮助!

c c++ performance bit-manipulation bitwise-operators

15
推荐指数
5
解决办法
1556
查看次数

QGLWidget和硬件加速?

问候所有,

简单地继承QGLWidget并重新实现paintEvent()是否可以利用OpenGL和硬件加速?我创建了一个QPainter并在这个paintEvent()中绘制QImages.

在QGLWidget的paintEvent()方法中发生了什么?它是否将图像(QImage,QPixmap)转换为OpenGL纹理?

它是否使用硬件加速进行图像缩放?

提前谢谢,umanga

opengl qt qt4 qglwidget hardware-acceleration

9
推荐指数
2
解决办法
7454
查看次数

如何在控制台窗口C++中删除滚动条

我一直在查看一些用C和C++编写的Rogue游戏(Larn,Rogue等),我注意到它们没有控制台窗口右侧的滚动条.

我怎样才能完成同样的功能?

c++ windows console command-line scrollbar

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

为什么<$>只对一对中的第二个成员起作用?

快速浏览GHCi中的以下互动环节:

Prelude> import Control.Applicative
Prelude Control.Applicative> (+1) <$> [1,2]
[2,3]
Prelude Control.Applicative> (+1) <$> (1,2)
(1,3)

我认为<$>关于对的行为是有充分理由的,但到目前为止我找不到一个,所以:

为什么<$>(或fmap)定义为仅对一对的第二个成员起作用而不是对两个值起作用?

haskell functional-programming

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

在OpenGL中处理顶点的最佳技术?C++

我正在为Quake实现一个地图渲染器.我目前正在运行顶点数组并一次发送一个顶点数组.有人告诉我,通过使用顶点数组,我可以通过批量发送顶点来大大加快渲染过程.现在,我刚刚查看了显示列表,最后查看了VBO或顶点缓冲区对象.VBO提到了与客户端/服务器通信相关的巨大优势.如果我只是在开发客户而不是服务器,VBO仍然适用于我正在做的事情吗?

目前在OpenGL频谱中使用哪些游戏进行快速顶点处理?

c++ opengl rendering-engine vertex

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

我怎样才能在递归代码上捕获stackoverflow异常的根

我有以下递归代码,我得到一个stackoverflow异常.我无法弄清楚根本原因,因为一旦我得到异常,我在Visual Studio中得不到完整的调用堆栈.

这个想法是有组织团队加入更大的"主要"团队.

有没有人看到下面这段代码的缺陷可能是罪魁祸首?

    private Unit GetUnit(Unit organisationalUnit)
    {
        if (organisationalUnit.IsMainUnit)
        {
            return organisationalUnit;                
        }

        if (organisationalUnit.Parent == null)
            return null;

        return GetUnit(organisationalUnit.Parent);
    }
Run Code Online (Sandbox Code Playgroud)

c# stack-overflow recursion

6
推荐指数
2
解决办法
284
查看次数

Haskell:读取和输入签名

read 在Prelude中被定义为

read :: (Read a) => String -> a
Run Code Online (Sandbox Code Playgroud)

并且可以用作例如read "1" :: Int.

现在是一个功能

readOne :: (Read a) => [String] -> (a, [String])
readOne (x:xs) = (read x,xs)
Run Code Online (Sandbox Code Playgroud)

readOne ["1","foo"]错误中的结果(如预期)一起使用

Ambiguous type variable 'a' in the constraint:
'Read a' arising from a use of 'readOne' at :1:0-18
Probable fix: add a type signature that fixes these type variable(s)

但是readOne ["1","foo"] :: Int不起作用

readOneInt :: [String] -> (Int, [String])
readOneInt = readOne
Run Code Online (Sandbox Code Playgroud)

工作得很好:

> …
Run Code Online (Sandbox Code Playgroud)

haskell type-inference

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