由于其丑陋的语法和命名空间污染,许多人认为Haskell的记录语法是一种优雅语言的疣.另一方面,它通常比基于位置的替代方案更有用.
而不是像这样的声明:
data Foo = Foo {
fooID :: Int,
fooName :: String
} deriving (Show)
Run Code Online (Sandbox Code Playgroud)
在我看来,这些方面的东西会更有吸引力:
data Foo = Foo id :: Int
name :: String
deriving (Show)
Run Code Online (Sandbox Code Playgroud)
我确信必须有一个很好的理由让我失踪,但为什么采用类似C语言的记录语法采用更简洁的基于布局的方法?
其次,管道中是否有任何东西可以解决命名空间问题,所以我们可以编写id foo
而不是fooID foo
在Haskell的未来版本中编写?(除了目前可用的基于longwinded类型的变通办法.)
有没有办法杀死Eclipse后台操作而不杀死Eclipse本身?
具体来说,我想杀死陷入困境的Subclipse SVN操作.单击"取消"会弹出一条取消请求的消息,但操作仍会永远阻止其他所有操作.
这是Windows 7上的Eclipse Helios,如果这有任何区别的话.
任何人都可以对输出有所了解intel_gpu_top
吗?具体来说,什么是任务GAM,VS等(手册页没什么帮助.)
比特流忙什么意思?它似乎总是零......
render busy: 45%: ????????? render space: 83/131072
bitstream busy: 0%: bitstream space: 0/131072
blitter busy: 0%: blitter space: 0/131072
task percent busy
GAM: 43%: ????????? vert fetch: 0 (0/sec)
VS: 35%: ??????? prim fetch: 0 (0/sec)
CL: 33%: ??????? VS invocations: 2101845324 (1427552/sec)
SF: 33%: ??????? GS invocations: 0 (0/sec)
VF: 33%: ??????? GS prims: 0 (0/sec)
GAFS: 33%: ??????? CL invocations: 701123988 (475776/sec)
SOL: 32%: ??????? CL prims: …
Run Code Online (Sandbox Code Playgroud) 使用Xcode 4重新编译C++ iPhone应用程序我得到了这个讨厌的链接器错误:
ld: bad codegen, pointer diff in __static_initialization_and_destruction_0(int, int)
to global weak symbol vmml::Vector2<float>::ZERO for architecture armv6
Run Code Online (Sandbox Code Playgroud)
谁知道这意味着什么?如何让它消失当然也会很好:)
该应用程序在Xcode 3中无错误地编译和链接.
编辑:解决的办法是设置隐藏的默认符号来是在项目中的所有目标的所有生成设置.仍然没有更明智的实际问题是什么.
我正在使用EclipseFP来编辑我的Haskell项目.就语法着色以及构建和运行代码而言,它的工作原理非常好,但模块的大纲视图始终为空.应该有用吗?如果是这样,我需要注意什么来修复它?
我正在使用最新版本 - 带有GHC 7.0.3和EclipseFP 2.0.4的Haskell平台
在C++ iOS项目(或任何其他Mac OS)中,是否有一种简单的方法可以为Info.pList设置和预处理器宏形式的代码提供值?
理想情况下,我希望有这样的东西
C++代码:
#define MY_VERSION_STRING "1.0"
Run Code Online (Sandbox Code Playgroud)
的Info.plist
CFBundleVersion: ${MY_VERSION_STRING}
Run Code Online (Sandbox Code Playgroud)
或者,有没有办法从c ++中的.pList获取值?(无需手动将.pList解析为xml.)
使用Boost :: Python,有没有办法让Python 3.2作为bytes
对象可以访问原始C++缓冲区?
对于一个非常相似的问题,有一个Python 2答案,但PyBuffer_FromReadWriteMemory
Python 3中描述的函数不再存在.
编辑:感谢user2167433的回答,我真正想要的是一个只读的memoryview对象,而不是一个bytes
对象(使用memoryview
避免复制我相信的缓冲区).
我有一个类:
class Foo {
function getCurrentBar() {
$model = Query::findByPk($this->getSession()->get('current_bar')); // Pseudocode...
return $model;
}
}
Run Code Online (Sandbox Code Playgroud)
所以基本上我的应用程序中一次只有一个条形,它作为整数存储在会话中.我经常调用一个辅助函数来查找模型实例,它会进行数据库查询.还有缓存,但现在无关紧要.
我的问题是:我怎么单元测试与此?我测试的类需要这个.我想我可以改变会话以包含id但是这意味着我需要在数据库中有相应的模型.
最好的方法setCurrentBar()
是为单元测试添加方法吗?然后我可以模拟一个条形对象并设置它,它将用于所有单元测试.那有意义吗?
有没有办法使ExtJS4 PropertyGrid(Ext.grid.property.Grid)不可编辑?
没有"可编辑"或"只读"配置选项AFAICS.
我正在尝试使用ExceptT
monad转换器来捕获函数抛出的任何异常,如下所示:
import Control.Exception
import Control.Monad.Trans.Except
badFunction :: ExceptT SomeException IO ()
badFunction = throw DivideByZero
main :: IO ()
main = do
r <- runExceptT badFunction
case r of Left _ -> putStrLn "caught error"
Right _ -> putStrLn "nope, didn't catch no error"
Run Code Online (Sandbox Code Playgroud)
......但异常幸福地过得很快.我究竟做错了什么?
编辑:澄清一下,目的是捕获函数抛出的任何异常,无论异常是如何抛出的.如果它有任何区别,那么真正的函数调用位于相当深的monad变换器堆栈的底部.我不介意丢失抛出的字符串之类的东西(糟糕的程序员!).
使用Mootools,在不覆盖任何子节点的情况下,设置元素文本的最简洁方法是什么?
我想离开这个
<div id="foo">
foo
<div id="bar">
bar
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
......对此
<div id="foo">
new improved foo
<div id="bar">
bar
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我以为这样做会:
$('foo').set('text', 'new improved foo')
Run Code Online (Sandbox Code Playgroud)
但这取代了整个元素的内容,导致了
<div id="foo">
new improved foo
</div>
Run Code Online (Sandbox Code Playgroud)
(顺便说一句,这与set('html', ...)
AFAICS 相同.这是Mootools的错误吗?)
haskell ×4
c++ ×2
eclipse ×2
ios ×2
boost-python ×1
extjs ×1
extjs4 ×1
gpu ×1
intel ×1
layout ×1
linker ×1
mootools ×1
php ×1
python-3.2 ×1
python-3.x ×1
syntax ×1
terminology ×1
unit-testing ×1
xcode ×1
xcode4 ×1