小编Ped*_*lva的帖子

在clojure中的Scala类

这是我今天早上遇到的一个愚蠢的问题:我们可以使用来自clojure的Scala类吗?

因为如果答案是肯定的,我肯定会学习Clojure ^^

java jvm scala clojure

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

清除()树时使用ElementTree.iterparse()时内存使用量是否会增加?

import os
import xml.etree.ElementTree as et

for ev, el in et.iterparse(os.sys.stdin):
    el.clear()
Run Code Online (Sandbox Code Playgroud)

在ODP结构上运行上述RDF转储会导致内存不断增加.这是为什么?我理解ElementTree仍然构建一个解析树,尽管有子节点clear()ed.如果这是这种内存使用模式的原因,有没有办法解决它?

python memory-leaks elementtree

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

在什么情况下,'use fields'invate中的实例变量被声明为'_var'?

我试图理解fieldspragma 的行为,我发现这些行为很难记录,关于以下划线为前缀的字段.这就是文档中有关它的内容:

以下划线字符开头的字段名称对类是私有的,对子类不可见.可以覆盖继承的字段,但如果与-w开关一起使用,则会生成警告.

根据我的测试,这与其实际行为不一致.不仅 - _在子类中可见的前缀字段,它们在外部类中也是可见的(除非我没有得到"可见"的含义).此外,直接访问受限制的哈希工作正常.

在哪里可以找到更多关于fields编译指示行为的信息,而不是源代码?

{
    package Foo;
    use strict;
    use warnings;
    use fields qw/a _b __c/;

    sub new {
        my ( $class ) = @_;
        my Foo $self = fields::new($class);
        $self->a = 1; $self->b = 2; $self->c = 3;
        return $self;
    }

    sub a : lvalue { shift->{a}   }
    sub b : lvalue { shift->{_b}  }
    sub c : lvalue { shift->{__c} }
}
{
    package Bar;
    use base 'Foo'; …
Run Code Online (Sandbox Code Playgroud)

oop perl field private-members

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

如何将用户创建公开,但在CouchDB中读取访问权限?

我想公开用户创建,以便未经身份验证的用户可以创建新帐户_users,但只为admin角色提供读取权限.这可能吗?怎么样?

couchdb couchdb-futon

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

匹配基于度的地理坐标与正则表达式

我希望能够识别表单的模式

28°44'30"N., 33°12'36"E.
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所拥有的:

use utf8;
qr{
    (?:
    \d{1,3} \s*  °   \s*
    \d{1,2} \s*  '   \s*
    \d{1,2} \s*  "   \s*
    [ENSW]  \s* \.?
            \s*  ,?  \s*
    ){2}
}x;
Run Code Online (Sandbox Code Playgroud)

毋庸置疑,这不符合.它与扩展字符(即度数符号)有什么关系吗?或者我只是搞砸了这个大时间?

CPAN如果你知道那些可以解决我问题的东西,我也会很感激.我看过Regex :: CommonGeo :: Formatter,但这些都不是我想要的.有任何想法吗?

更新

事实证明,我需要use utf8在读取文件中的坐标时取出.如果我用一个坐标手动初始化一个变量,它会很好地匹配,但是一旦我从一个文件读取同一行,它就不匹配.拿出use utf8解决了.我想我真的不明白utf8在做什么.

regex perl coordinates

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

如何将矢量映射到地图,将重复键值推入其中?

这是我的输入数据:

[[:a 1 2] [:a 3 4] [:a 5 6] [:b \a \b] [:b \c \d] [:b \e \f]]
Run Code Online (Sandbox Code Playgroud)

我想将此映射到以下内容:

{:a [[1 2] [3 4] [5 6]] :b [[\a \b] [\c \d] [\e \f]]}
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止:

(defn- build-annotation-map [annotation & m]
 (let [gff (first annotation)
       remaining (rest annotation)
       seqname (first gff)
       current {seqname [(nth gff 3) (nth gff 4)]}]
   (if (not (seq remaining))
     m
     (let [new-m (merge-maps current m)]
       (apply build-annotation-map remaining new-m)))))

(defn- merge-maps [m & ms]
  (apply merge-with conj …
Run Code Online (Sandbox Code Playgroud)

vector clojure hashmap

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

用于模拟RNA合成的Perl程序

寻找关于如何处理我的Perl编程家庭作业编写RNA合成程序的建议.我总结并概述了下面的程序.具体来说,我正在寻找下面的块的反馈(我将编号以便于参考).我读过安德鲁约翰逊的"Perl编程元素"第6章(好书).我还阅读了perlfunc和perlop pod-pages,没有任何内容可以从哪里开始.

程序描述:程序应该从命令行读取输入文件,将其翻译成RNA,然后将RNA转录成一系列大写的单字母氨基酸名称.

  1. 接受命令行上指定的文件

    在这里我将使用<>运算符

  2. 检查以确保该文件仅包含acgt或die

    if ( <> ne [acgt] ) { die "usage: file must only contain nucleotides \n"; }  
    
    Run Code Online (Sandbox Code Playgroud)
  3. 将DNA转录为RNA(每个A替换为U,T替换为A,C替换为G,G替换为C)

    不知道该怎么做

  4. 从第一次出现的"AUG"开始,把它转录成3个字符的"密码子".

    不确定,但我认为这是我将开始%哈希变量的地方?

  5. 取3个字符"密码子"并给它们一个字母符号(一个大写的单字母氨基酸名称)

    使用键赋值(这里有70种可能性,所以我不确定存储位置或访问方式)

  6. 如果遇到间隙,则启动新行并重复处理

    不确定,但我们可以假设差距是三倍的倍数.

  7. 我是以正确的方式接近这个吗?是否有我可以忽略的Perl功能可以简化主程序?

注意

必须是自包含程序(密码子名称和符号的存储值).

每当程序读取没有符号的密码子时,这是RNA中的缺口,它应该开始一个新的输出系列并从下一次出现的"AUG"开始.为简单起见,我们可以假设间隙总是三倍的倍数.

在我花费任何额外时间进行研究之前,我希望得到确认,我正在采取正确的方法.感谢您花时间阅读并分享您的专业知识!

perl hash bioinformatics

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

如何实现懒惰的"缩小地图"功能?

我正在尝试实现"缩小地图"功能.也就是说,它应该返回一个序列,该序列包括应用于fcoll两项的结果,然后是应用于f该结果和第三项的结果coll,等等.

(def c [[0 0 0 0] [1 0 0 0] [0 1 0 0] [0 0 1 0] [0 0 0 1]])

(defn- sum-vector [v1 v2]
  (map + v1 v2))

(defn reduce-map [f coll & acc]
  (if (< (count coll) 2)
    (if (empty? acc) coll acc)
    (let [head (apply f (take 2 coll))
          tail (drop 2 coll)]
      (recur f (conj tail head) (conj acc head)))))
Run Code Online (Sandbox Code Playgroud)

例如,像这样调用这个函数:

(reduce-map sum-vector c)
Run Code Online (Sandbox Code Playgroud)

应该返回:

[[1 …
Run Code Online (Sandbox Code Playgroud)

recursion reduce clojure map cons

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

是否可以为多签名函数中的所有实现设置公共绑定?

(这是一个关于风格的问题.我知道这可以用一堆条件,多方法等来完成)

在以下函数中,null-vector定义了每个实现.如何为整个功能设置一次?通常,是否可以为所有实现设置公共绑定?

一个闭包不起作用,因为它null-vector需要一个"论证",但我想我能partial做到.但是,仍然需要计算size参数.显然,我想避免重复代码.

(defn path
  "Returns a lazy sequence of vectors representing a monotonic path
   walked over coll in n-dimensional space, where n is the cardinality
   of coll's alphabet."

  ([coll]
     (let [alphabet    (set coll)
           cardinality (count alphabet)
           alpha-map   (apply hash-map (interleave alphabet (range cardinality)))
           null-vector (vec (repeat cardinality 0))]
       (path coll null-vector alpha-map)))

  ([coll alpha-map]
     (let [null-vector (vec (repeat (count (keys alpha-map)) 0))]
       (path coll null-vector alpha-map)))

  ([coll origin alpha-map]
     (let [null-vector (vec (repeat …
Run Code Online (Sandbox Code Playgroud)

clojure

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

如何在宏调用中的编译时生成多个表达式?

一个特定的宏在其主体中运行每个表达式,在每个表达式之间交错原子,并收集结果.

这适用于硬编码表达式,但是如果我想动态生成一系列表达式插入到宏调用的主体中,那么显然不会起作用,因为这将在宏完成之后进行评估工作.

我想解决方案是编写我自己的宏来生成我需要的表达式,但我不确定是否会在外部宏之前进行评估.

我尝试过类似的东西,但它不起作用:

(mac genexpr (list)
  (map (fn (e) `(something ,e)) list))
Run Code Online (Sandbox Code Playgroud)

macros arc-lisp

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