小编Ste*_*lla的帖子

desugaring arrow语法后如何获得haskell代码?

我目前试图解决我的问题HXT:输入是否可以改变箭头语法?因此,想要在ghc编译器去掉Arrow语法之后看到haskell代码.我怎样才能做到这一点?

我已经尝试-ddump-ds但是有了这个标志,我得到了一个可怕的长代码,因为所有类型都得到了解决.有没有办法看到代码只用箭头语法desugaring?

haskell arrows ghc

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

如何向hamlet模板添加条件注释?

如何向莎士比亚模板添加条件注释(或任何类型的Html注释)?

如果我加

<!--[if IE 6]>
<link type="text/css" rel="stylesheet" href="..." media="screen">
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

到我的hamlet模板只生成一个空行.

html haskell conditional-comments yesod hamlet

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

如何强制Python在循环中创建新的变量/新范围?

今天我探讨了Python 的奇怪行为.一个例子:

closures = []
for x in [1, 2, 3]:
    # store `x' in a "new" local variable
    var = x

    # store a closure which returns the value of `var'
    closures.append(lambda: var)

for c in closures:
    print(c())
Run Code Online (Sandbox Code Playgroud)

上面的代码打印出来

3
3
3
Run Code Online (Sandbox Code Playgroud)

但是我希望它能打印出来

1
2
3
Run Code Online (Sandbox Code Playgroud)

我为自己解释了这种行为,var它始终是相同的局部变量(并且python不像其他语言那样创建新的行为).如何修复上面的代码,以便每个闭包都返回另一个值?

python variables parameters closures for-loop

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

从派生中隐藏字段(显示)

想象一下,我有一个包含许多字段的数据记录:

data DataRecord = DataRecord {
    field1 :: String,
    field2 :: String,
    ...
} deriving (Show)
Run Code Online (Sandbox Code Playgroud)

是否可以隐藏某些字段deriving (Show)或者必须实现我自己的show功能DataRecord

我的问题的原因:当我在两个数据记录之间存在循环依赖关系时,使用deriving (Show)show函数都将生成无限字符串.

haskell record

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

删除列表中的否定元素 - Python

因此,我试图编写一个函数来删除列表的负面元素,而不使用.remove或.del.只需直接进行循环和循环.我不明白为什么我的代码不起作用.任何援助将不胜感激.

def rmNegatives(L):
    subscript = 0
    for num in L:
        if num < 0:
            L = L[:subscript] + L[subscript:]
        subscript += 1
    return L
Run Code Online (Sandbox Code Playgroud)

python for-loop

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

为什么python的imp.reload()无法删除旧的类和函数?

我只是认识到,imp.reload()如果从模块的源文件中删除了旧的类和函数,则不会删除它们。

一个例子:

:~$ python3
Python 3.2.3 (default, May  3 2012, 15:54:42) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print(open("test.py").read())
# empty file
>>> import test
>>> dir(test)
['__builtins__', '__cached__', '__doc__', '__file__', '__name__',
'__package__']
>>> print(open("test.py").read())                             
# new class A and B added
class A:                                                      
        pass                                                  

class B:                                                      
        pass

>>> import imp
>>> dir(imp.reload(test))
['A', 'B', '__builtins__', '__cached__', '__doc__', '__file__', '__name__',
'__package__']
>>> print(open("test.py").read())
# class A deleted
class B:
        pass

>>> …
Run Code Online (Sandbox Code Playgroud)

python module object reload python-3.x

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

Python:如何检查对象是否是模块?

如何在Python中检查给定对象是否是模块?

这是我尝试过的:

>>> import sys
>>> sys.modules["sys"].__class__
<class 'module'>
>>> isinstance(sys.modules["sys"], module)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'module' is not defined
>>> sys.modules["sys"].__class__.__module__
'builtins'
>>> import builtins
>>> builtins.module
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'module'
Run Code Online (Sandbox Code Playgroud)

python module object

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

获取Data.Tree中的节点的父节点(haskell)

我需要一个树实现,我可以访问树中任何节点的父节点.看看Data.Tree我看到了树的定义:

data Tree a = Node {
    rootLabel :: a,         -- ^ label value
    subForest :: Forest a   -- ^ zero or more child trees
}
Run Code Online (Sandbox Code Playgroud)

所以如果我有一个树节点,Tree a我可以访问它的标签及其子节点.但是也可以访问其父节点?是否必须根据我的需求选择不同的实施方案?你会推荐哪个套餐?

tree haskell

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