我有一些复杂的XSLT 2.0转换.我试图找出是否有通用的方法来确保不输出空标签.所以......从概念上讲,处理的最后阶段会递归删除所有空标记.我知道这可以通过一个单独的XSLT来完成,它除了过滤掉空标签之外什么也没做,但是我需要将它们全部打包在一起.
在其他语言中,我喜欢将我的单元测试放在与生产代码不同的目录结构中,以保持清晰的分离.在Haskell中有一个典型的约定,如何做到这一点或类似的东西?
我正在使用Haskell.标准列表连接是天真和缓慢的.我的情况是我有一个算法,它建立一个单独的列表连接(顺序无关紧要,所以它可以是前置或附加或组合)多次,然后返回它.结果将只使用一次.高性能至关重要.
所以,这是一个非常简单的情况.我听说过差异列表,这有助于解决这种情况.但那是最好的选择吗?
列表可能会变得很大:100,000个条目.
假设我在模块My.Module中定义了MyType类型.我想要字符串"My.Module.MyType"(或类似的东西).如果我只是直接输入字符串,我可能会输入错误,如果模块或类型名称发生变化,我想在编译时知道.
啊,似乎可能会对我的要求感到困惑.请仔细看看这个问题.鉴于代码:
module My.Module
type MyType = Int
data MyType2 = MyConstructor2 Int
main = do
putStrLn $ theMagic MyType
putStrLn $ theMagic MyType2
Run Code Online (Sandbox Code Playgroud)
我想要的输出是:
My.Module.MyType
My.Module.MyType2
Run Code Online (Sandbox Code Playgroud)
我正在寻找类型名称,而不是类型定义.typeOf会输出Int等等,这不是我想要的.
我理解要在Composite上绘图,你可以添加一个绘图监听器,但这会导致绘制在子项下.如果我想画出孩子的顶部怎么办?
下面绘制一条线,但是在它上面画了一个子线.
Composite c = new Composite(shell, 0);
c.setBackground(shell.getDisplay().getSystemColor(SWT.COLOR_BLUE));
c.setBounds(100, 100, 800, 600);
c.addPaintListener(new PaintListener() {
public void paintControl(PaintEvent e) {
e.gc.drawLine(0, 0, 500, 1000);
}
});
final Composite subc = new Composite(c, 0);
subc.setLayout(null);
subc.setBounds(10, 10, 600, 400);
Run Code Online (Sandbox Code Playgroud) 关于Haskell的精彩之处.函数的类型几乎决定了它的实现.对于这一个就是这种情况,但是......我的大脑并没有在这里包围嵌套函数:
mkDyn :: (Typeable a) => ((a -> IO()) -> IO ()) -> ((Dynamic -> IO()) -> IO ())
Run Code Online (Sandbox Code Playgroud)
唯一的问题是如何处理将要求的fromDynamic调用中的错误处理,但是......一旦我完成了其余的事情,我就可以处理它.我猜想在某个地方需要有类似的东西.但我似乎无法得到包装器lambda的东西.
case fromDynamic x of
Just x -> f x
Nothing -> undefined -- TODO
Run Code Online (Sandbox Code Playgroud) 我需要一种快速的方法(每秒1000次的typechecks)来检测生成的Haskell源代码.
我们尝试了足够快的提示,除了它无法访问动态加载的代码,除非源代码可用,在某些情况下我们不会.也许有一些方法可以将动态加载的代码注册为一个包或者什么东西,因为提示可以访问注册的包呢?
我们尝试使用ghc api,但它似乎要求文件在磁盘上,并且所需的所有文件IO都会使它太慢.
我们可以使用haskell-src-exts来生成代码,但是我们需要对它进行类型检查.
根据这个:http://undertow.io/它支持websockets.但是,没有关于如何这样做的文档.我只想要一个处理Web套接字示例的简单嵌入式底层.
我不想抓住整个jboss应用服务器.
每当持久数据结构(PDS)更新时,我都需要GUI控件来更新.
我需要在用户采取某些操作时更新PDS.
因此,例如,SWT树和简单的树数据结构.
有许多手动,丑陋的方法来做到这一点,但在我看来这是一个非常普遍的情况,那里可能会有一个非常干净的方法.
我一直在阅读有关FRP,镜头,演员等的内容......似乎可以有一种非常简单,干净,有效的方法来处理这种情况.
假设我有各种简单签名的100个函数(从单态开始,但想使多态案例也起作用)a - > b(Int - > Int,Int - > String,String - > Double,MyType - > MyOtherType等)
假设我向用户显示了这些列表.用户选择一个.我显示了一个函数列表,其参数与所选函数的输出兼容.用户选择一个.
我现在怎么能组成这两个功能?一般情况是一系列的组合,但我认为这个简单的案例涵盖了我正在使用的问题.
我知道我可以尝试unsafeCoerce或Data.Dynamic,但我试图看看是否可以避免这种情况,而那些显然仅限于导致问题的单态类型.
我想也许某种程度上我可以创建所有功能的数据结构以及它们可以组成的内容,但我不确定.当包含多态情况时,似乎不可能.