小编Dav*_*ric的帖子

记录字段是否可以与某个值匹配并同时分配给参数?

在关于Haskell wiki的关于记录的模式匹配的相对简短的文本之后,我不确定记录的字段是否可以与某个值匹配并且同时分配给参数.

-- Sample record type
data Rec = Rec { uid :: Int, name :: String }

-- Function to update Rec's fields
updateRec :: Rec -> Rec

-- basic matching with record data constructor
updateRec (Rec _ []) = Rec 0 "Nobody"

-- dtto with as-pattern at 2nd param
updateRec (Rec idn ns@"Alice") = Rec (idn+1) (ns ++ "+1")

-- basic matching by fields values
updateRec Rec {name = "Bob", uid = 42} = Rec (10^6) "SuperBob"

-- …
Run Code Online (Sandbox Code Playgroud)

haskell

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

为什么等效的Python代码要慢得多

有人可以解释为什么下面这些简单的代码(Euclid算法的实现找到最大的共同点)比Ruby中的等效代码慢3倍?

iter_gcd.py的内容:

from sys import argv,stderr

def gcd(m, n):
    if n > m:
        m, n = n, m
    while n != 0:
        rem = m % n
        m = n
        n = rem
    return m

# in Python3 code there is xrange replaced with range function
def main(a1, a2):
    comp = 0
    for j in xrange(a1, 1, -1):
        for i in xrange(1, a2):
            comp += gcd(i,j)

    print(comp)

if __name__ == '__main__':
    if len(argv) != 3:
        stderr.write('usage: {0:s} num1 num2\n'.format(argv[0]))
        exit(1) …
Run Code Online (Sandbox Code Playgroud)

ruby python python-3.x

19
推荐指数
3
解决办法
4145
查看次数

适用于Haskell的全功能CSV解析器?

任何人都可以推荐使用以下选项解析CSV文件的方法:

  • 设置单元格/字段分隔符
  • 设置记录/行终止符的结尾
  • 为字段设置quote-character
  • 支持UTF-8字符串
  • 能够将内存中的CSV结构写回文件

我确实尝试过Text.CSV,但它非常简单,并且缺少大部分上述功能.是否有一些更高级的CSV解析模块或者我必须"从头开始"编写它,即使用Text.ParserCombinators?我不打算重新发明轮子.

照顾自己.

csv haskell

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

扩展模块和类变量访问?

我无法理解为什么在以下示例中访问模​​块的类变量失败:

module M
  @@xyz = 123
end
M.class_variables    # [:@@xyz]
M.class_variable_get :@@xyz    # 123 , so far so good

class C
  extend M
end
C.singleton_class.class_variables    # [:@@xyz]
C.singleton_class.class_variable_get :@@xyz # NameError:
                      # uninitialized class variable @@xyz in Class
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么类变量@@xyzC单例类中突然无法/未定义?

更新: 我使用不同的Ruby YARV版本重新测试了上面的代码,并将其作为最新的回归.

更新2:

Module#class_variables在最新的Ruby生成中,方法的定义发生了变化.

  • Ruby的定义是1.9.3

    class_variables →数组

    返回mod中类变量名称的数组.

  • Ruby 2.0.0最新稳定版

    class_variables(inherit = true) →数组

    返回mod中类变量名称的数组.除非将inherit参数设置为false,否则这包括任何包含的模块中的类变量的名称.

所以在最新的Ruby化身中,class_variables默认情况下还返回包含模块的类变量.只是好奇这个功能是什么,或者它是否仍然关注模块"包括" include与否extend.

谁能解释一下?

ruby

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

I18n没有Rails?

在没有Rails环境的情况下让I18n工作有麻烦:


irb> require 'i18n'
=> true
irb> I18n.load_path=Dir['/usr/lib/ruby/gems/1.9.1/gems/rails-i18n-0.6.6/rails/locale/en.yml']
=> ["/usr/lib/ruby/gems/1.9.1/gems/rails-i18n-0.6.6/rails/locale/en.yml"]
irb> I18n.load_path+=Dir['/usr/lib/ruby/gems/1.9.1/gems/rails-i18n-0.6.6/rails/locale/sk.yml']
=> ["/usr/lib/ruby/gems/1.9.1/gems/rails-i18n-0.6.6/rails/locale/en.yml", "/usr/lib/ruby/gems/1.9.1/gems/rails-i18n-0.6.6/rails/locale/sk.yml"]
irb> I18n.locale=:sk
=> :sk
irb> I18n.default_locale=:sk
=> :sk
irb> I18n.l Time.now
I18n::MissingTranslationData: translation missing:
sk.time.formats.default
  from /usr/lib/ruby/gems/1.9.1/gems/i18n-0.6.1/lib/i18n.rb:289:in
`handle_exception'
  from /usr/lib/ruby/gems/1.9.1/gems/i18n-0.6.1/lib/i18n.rb:159:in
`translate'
  from
/usr/lib/ruby/gems/1.9.1/gems/i18n-0.6.1/lib/i18n/backend/base.rb:55:in
`localize'
  from /usr/lib/ruby/gems/1.9.1/gems/i18n-0.6.1/lib/i18n.rb:236:in
`localize'
  from (irb):11
  from /usr/bin/irb:12:in `<main>'
irb>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么 ?sk.yml包含sk.time.formats.default元素!!

另外,I18n的默认load_path是什么,所以我不打算为每个翻译YAML/Ruby文件提供完整路径?

谢谢.

ruby internationalization i18n-gem

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

在Firefox中设置自定义协议处理程序

我希望Firefox(在Linux上运行)用外部应用程序打开自定义协议.

例如,以gvim://协议名称开头的url 应该启动gvim并传递其余的url.

我试图设置network.protocol-handler.external.gvim,network.protocol-handler.app.gvim通过Mozilla的知识库但是火狐仍然抛出未知协议试图打开时的错误消息gvim://的URL.但没有提供如何处理该协议的提示.对于Firefox版本来说,知识库似乎已经过时了.27.

如何在最近的Firefox版本中正确配置自定义协议处理程序的任何想法?我在没有GNOME的情况下运行Linux.

firefox firefox-addon

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

在Haskell中按区域设置对字符串进行排序和比较?

是否可以在Haskell(GHC)中使用国家字符对字符串进行正确排序?换句话说,按当前区域设置正确整理Chars?

我确实只找到了ICU模块,但它需要安装额外的库,因为它不是linux发行版的标准部分.我想要基于POSIX的C(glibc like)库的解决方案,因此处理额外的依赖关系不会有任何麻烦.

string locale haskell localization

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

任意大数字的BCD数学库?

我正在寻找Delphi Data.FmtBcd库的替代品,因为我只是达到它可以表示的最大十进制数字的限制,并且程序终止于EBcdOverflowException.对于好奇,我正在计算算术系列成员,需要处理非常大的数字 - 数十万个位置并不是那么罕见.并在合理的时间内获得结果.我确实将部分代码重写为Python 3.2用于测试目的,并且计算速度足以满足Delphi的要求.

有关此类库的一些建议,最好是免费还是开源?

delphi biginteger bigdecimal bcd

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

Django中的数字格式?

希望简单的问题得到一个简单的答案 我只想编写Django的过滤器,以便我得到格式化的浮点数区域设置感知:

{{123.45|floatformat:1}}
"123.5"  <= correct
{{123.45|localize}}
"123,45"  <= correct, in my locales decimal separator is a comma
{{123.45|floatformat:1|localize}}
"123.5"  <= wrong, point instead of comma. Expected output: "123,5"
Run Code Online (Sandbox Code Playgroud)

如何同时应用这两个过滤器?

谢谢.

python django django-templates

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

Django-import-export - 导入高级字段?

对于Django模型,我使用的是django-import-export包.

如果需要导出更多只有可用的模型字段(如属性或自定义字段),可以使用import_export.fields.Field类和可选dehydrate_<field>方法添加new .

from import_export import resources, fields, instance_loaders

class ProductResource(resources.ModelResource):
    categories  = fields.Field()
    price       = fields.Field(attribute='unit_price')

    class Meta:
        model  = Product

    def dehydrate_categories(self, product):
        return ';'.join(
                '/%s' % '/'.join([c.name for c in cat.parents()] + [cat.name])
                for cat in product.category.iterator() )
Run Code Online (Sandbox Code Playgroud)

它确实运作良好,但仅适用于出口.那么进口,反向过程呢?dehydrate_方法有一些对应的吗?

到目前为止,我已经覆盖了get_or_init_instance方法:

class ProductResource(resources.ModelResource):
    def get_or_init_instance(self, instance_loader, row):
        row['unit_price'] = row['price']; row.pop('price')
        return super(ProductResource, self).get_or_init_instance(instance_loader, row)
Run Code Online (Sandbox Code Playgroud)

但怀疑这是正确的方法.

将不胜感激任何提示如何处理自定义字段的导入.

python django django-models satchmo django-import-export

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