我最近尝试从使用切换python-mode.el到python.el编辑emacs中的python文件,发现这种体验有点陌生和非生产性,并且匆匆回来.我已经习惯了python-mode.el十年了,所以也许我的方式有点不对劲.我有兴趣听到任何仔细评估这两种模式的人,特别是他们对每种模式的利弊,以及他们的工作如何与特定的特征相互作用python.el.
我的两个主要问题python.el是
访问python文件的每个缓冲区都有自己的劣质交互式python shell.我习惯在一个交互式shell中进行开发,并在python文件之间共享数据.(从软件工程的角度来看,可能看起来很糟糕,但我通常使用大量数据集,这些数据集需要一段时间才能加载到内存中.)
python.el中的骨架模式支持,似乎绝对无偿(python的语法使得这种自动化不必要)和设计糟糕(例如,它不知道" for"循环生成器表达式或" <expr 1> if <cond> else <expr 2>"表达式,所以你必须回去并且在坚持你在迷你缓冲区中输入表达式子句之后删除它有用地插入的冒号.)我无法弄清楚如何关闭它.有一个python.el声称控制它的变量,但它似乎没有用.可能是python.el我使用的版本被破坏了(它来自debian emacs-snapshot包)所以如果有人知道它的最新版本,我想听听它.(大约两周前,我在CVS emacs中的版本遇到了同样的问题.
假设我有一个区间(a,b),以及多个子区间{(a i,b i)} i,其并集都是(a,b).是否有一种有效的方法来选择这些子区间的最小基数子集,这些子集仍然涵盖(a,b)?
markdown中是否有任何方法可以在此LaTeX代码段中执行相当于交叉引用的操作?(取自这里.)
\begin{enumerate}
\item \label{itm:first} This is a numbered item
\item Another numbered item \label{itm:second}
\item \label{itm:third} Same as \ref{itm:first}
\end{enumerate}
Cross-referencing items \ref{itm:second} and \ref{itm:third}.
Run Code Online (Sandbox Code Playgroud)
这个LaTeX产生
1. This is a numbered item
2. This is another numbered item
3. Same as 1
Cross-referencing items 2 and 3.
Run Code Online (Sandbox Code Playgroud)
也就是说,我希望能够在没有明确编号的情况下引用降价列表中的项目,这样我就可以将上面的列表更改为以下内容,而无需手动更新交叉引用:
1. This is the very first item
2. This is a numbered item
3. This is another numbered item
4. Same as 2
Cross-referencing items 3 and 4.
Run Code Online (Sandbox Code Playgroud) Knuth 最近反对 64位系统,称对于适合4 GB内存的程序,"它们实际上会丢弃一半的缓存",因为指针是32位系统的两倍.
我的问题是:通过在64位计算机上安装32位操作系统可以避免这个问题吗?是否有任何带宽密集型基准测试证明了这种情况下的优势?
我正在寻找一个R可用于根据计数数据训练狄利克雷先验的包。我正在询问一位正在使用 的同事R,而我自己并没有使用它,所以我不太清楚如何寻找软件包。搜索起来有点困难,因为“R”是一个非特定的搜索字符串。CRAN上好像没有什么,但是还有其他地方可以看吗?
我喜欢使用以下习惯用法将列表组合在一起,有时候:
>>> list(itertools.chain(*[[(e, n) for e in l] for n, l in (('a', [1,2]),('b',[3,4]))]))
[(1, 'a'), (2, 'a'), (3, 'b'), (4, 'b')]
Run Code Online (Sandbox Code Playgroud)
(我知道有更简单的方法来获得这个特定的结果,但是当你想要迭代列表列表中的元素或类似的东西时,它会派上用场.当你使用生成器表达式时,麻烦就是这个变得容易出错.例如
>>> list(itertools.chain(*(((e, n) for e in l) for n, l in (('a', [1,2]),('b',[3,4])))))
[(1, 'b'), (2, 'b'), (3, 'b'), (4, 'b')]
Run Code Online (Sandbox Code Playgroud)
这里发生的是内部生成器表达式作为参数传递itertools.chain,所以在它们被评估时,外部生成器表达式已经完成,并且n固定在它的最终值,'b'.我想知道是否有人想办法避免这种错误,除了"不要那样做".