小编xtr*_*eak的帖子

无法在emacs启动时加载cl-lib

我从Github下载了autopair并将其解压缩到~/.emacs.d.我还添加了安装说明中给出的行

(add-to-list 'load-path "/path/to/autopair") ;; comment if autopair.el is in standard load path 
(require 'autopair)
(autopair-global-mode) ;; enable autopair in all buffers
Run Code Online (Sandbox Code Playgroud)

我修改(add-to-list 'load-path "/path/to/autopair")(add-to-list 'load-path "~/.emacs.d/autopair-master/")该文件夹包含autopair.el文件.但是,当我打开emacs时,它会显示出来

Warning (initialization): An error occurred while loading `/home/karthikeyan/.emacs':

File error: Cannot open load file, cl-lib
Run Code Online (Sandbox Code Playgroud)

我在Linux Mint 15中使用emacs 23.4.1并且有没有其他方法可以在启动时使用函数自动完成大括号?.它也没有显示autopair模式Meta-x

emacs

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

Perl中的数字和字符串连接

我是一个Perl新手.我想用字符串连接一个字符串和一个数字.运算符和第一个参数将是一个数字.我可以使用join,sprintf并将它们打印为打印编号,字符串.但我试过了.操作员并得到以下

$foo = "hello".34 # Gives hello.34
$foo = 34."hello" # Gives an error
$foo = 34.34 # Gives 34.34
$foo = 34.34.34 # Gives """
$foo = "hello".34."hello" # Gives an error
Run Code Online (Sandbox Code Playgroud)

我在Perl调试器下尝试过它们.我的问题是为什么不将Perl连接数字和字符串与数字作为第一个参数,反之亦然.为什么34.34.34在Perl中给出""".

perl concatenation

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

为什么打印$(给出一个数字系列

当我开始使用变量来打印$foo字符串中的变量时

我用过print ${foo}s但是当我用print "$(foo)s" 它时给了我

1000 4 24 27 30 46 108 125 1000)s.当我打印$($)它给我序列1000 4 24 27 30 46 108 125 1000.也 $[给了5.014002$]给了0.他们的意思是什么?

perl

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

正则表达式不应与括号内的数字匹配

我有一段经文,而且有数字.我希望每个编号的诗歌都在单独的行中,所以我在它们之前添加一个新行,但我有一些括号也有数字.它们也被新线代替.我不想匹配括号内的数字.我用了

$_=~s/(\d+)/\n$1 /gs;
Run Code Online (Sandbox Code Playgroud)

有了这个输入:

1Hello2Hai (in 2:3) 3hi 4 bye
Run Code Online (Sandbox Code Playgroud)

但它也取代了paranthesis里面的数字.

所需输出:

1 Hello
2 Hai (in 2:3)
3 hi
4 bye
Run Code Online (Sandbox Code Playgroud)

实际产量:

1 Hello
2 Hai (in
2:
3)
3 hi
4 bye
Run Code Online (Sandbox Code Playgroud)

如何构造正则表达式,使其与括号内不匹配.我用perl的是regex.

regex perl

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

优化bigint调用

我目前正在使用"在D中编程"一书来学习D.我试图解决从1到10000000之间总结数字平方的问题.我首先提出了一个函数方法来解决地图问题并减少但是as数字越大我必须将数字转换为bigint以获得正确的输出.

  long num = 10000001;
  BigInt result;
  result = iota(1,num).map!(a => to!BigInt(a * a)).reduce!((a,b) => (a + b));
  writeln("The sum is : ", result);
Run Code Online (Sandbox Code Playgroud)

使用dmd -O编译时,上面需要7秒才能完成.我描述了该程序,大部分时间都浪费在BigInt调用上.虽然数字的平方可以适合很长,但我必须将它们强制转换为bigint,以便减少函数总和并返回适当的总和.python程序只需3秒即可完成.当num = 100000000 D程序达到1分13秒时完成.有没有办法优化对bigint的调用.产品本身可能很长,但必须将它们作为bigint对象进行类型转换,以便它们能够通过减少操作来获得正确的结果.我尝试将数字的平方推入bigint数组,但速度也较慢.我试图将所有数字强制转换为Bigint

auto bigs_map_nums = iota(1,num).map!(a => to!BigInt(a)).array;
auto bigs_map = sum(bigs_map_nums.map!(a => (a * a)).array);
Run Code Online (Sandbox Code Playgroud)

但它也慢了.我阅读了如何在scala中优化这个短因子函数的答案(创建50000 BigInts).对于D中更大整数的乘法实现是否存在问题?有没有办法优化对BigInt的函数调用?

python代码:

timeit.timeit('print sum(map(lambda num : num * num, range(1,10000000)))',number=1)
333333283333335000000
3.58552622795105
Run Code Online (Sandbox Code Playgroud)

该代码在具有2 GB RAM的双核64位Linux笔记本电脑上执行.python:2.7.4 dmd:DMD64 D编译器v2.066.1

python optimization d

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

android中的<hr>标记用法

我有一个声明,我必须添加一条水平线.但它没有得到Android的支持,似乎有任何方法可以重新创建


使用支持的标签在android中标记效果.

String message = "Hello <br> hai<br> I am fine <hr>";
tab.setText(Html.fromHtml(message));
Run Code Online (Sandbox Code Playgroud)

这表明您好

我很好

但没有横线.

这里HTML标签"hr"不起作用.有没有办法从支持的标签添加hr标签效果.提前致谢..

html tags android textview

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

Perl解析器使用sort和uniq进行了很好的操作

嗨,我是Perl的新手.我无法理解运算符优先级.我在维基百科的Ruby页面找到了一个程序

"Nice Day Isn't It?".downcase.split("").uniq.sort.join # => " '?acdeinsty"
Run Code Online (Sandbox Code Playgroud)

我在Perl中尝试了同样的事情,但解析器行为很奇怪.我有以下程序

    use strict;
    use warnings;
    use List::MoreUtils qw(uniq distinct) ;

    my $hello = q/Nice Day Isn't It?/ ;

    print join ('', sort ( List::MoreUtils::uniq (split(//, lc $hello ))));  # &List::MoreUtils::uniq parses correctly and I need to include & before call.

    print "\n";

    print join('', sort( List::MoreUtils::uniq(split(//, lc $hello, 0))));
Run Code Online (Sandbox Code Playgroud)

输出:

   '?acdeiiinnstty
 '?acdeinsty
Run Code Online (Sandbox Code Playgroud)

我还试着看看Perl如何用B :: Deparse模块解析代码,这里是输出

perl -MO=Deparse test.pl
use List::MoreUtils ('uniq', 'distinct');
use warnings;
use strict 'refs';
my $hello = q[Nice …
Run Code Online (Sandbox Code Playgroud)

perl

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

使用垃圾值生成随机数或伪随机数

我遇到了使用垃圾值生成随机数的想法.在C中,未初始化的变量被赋予垃圾值(但是当我在我的geany中尝试它时,它给出了0).所以如果想从50-60取一个随机数.我可以获取垃圾模数值,然后将它们添加到随机数的初始限制中.但是未初始化的变量返回零而不是垃圾值,如本文所述@ 垃圾值如何分配给c中的变量

int i;
int LowerLimit=50;
int UpperLimit=60;
int RandomNumber = i%(UpperLimit-LowerLimit) + LowerLimit;
Run Code Online (Sandbox Code Playgroud)

如果我们使用一百个未初始化的变量来使用它们的组合来生成随机变量,那该怎么办呢?

c garbage-collection

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

java中的文件名和类名不同

我创建了一个名为 In.java 的文件并输入了以下代码

class In {
   int a;

   public static void main(
      String args[] ) {
      Inheritance h = new Inheritance();
      h.set( 6 );
      System.out.println( h.get() );
   }

   void set(
      int a ) {
      this.a = a;
   }

   int get() {
      System.out.println( a );
      return a;
   }
}
Run Code Online (Sandbox Code Playgroud)

当我编译它时,它显示了一个关于继承的错误。然后我重命名 In as I Inheritance

class Inheritance {
   int a;

   public static void main(
      String args[] ) {
      Inheritance h = new Inheritance();
      h.set( 6 );
      System.out.println( h.get() );
   }

   void set( …
Run Code Online (Sandbox Code Playgroud)

java class

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

为什么接口没有实现方法并覆盖它们?

我已经阅读了发布 SO问题所需的研究工作的帖子.我再次感到惭愧,将这个问题发布到一堆问题上.但我仍然不了解java中的接口.它们具有未实现的方法,然后为实现它们的每个类定义.我搜索了一下.接口用于支持java中的多重继承,也避免(致命)继承的Diamond Death.我也遇到了Composition vs Inheritance,并且继承不是代码重用,而是多态.因此,当我有一个公共代码作为扩展类时,由于多重继承而无法支持,因此可以选择使用接口(如果我错了,请纠正我).我还发现,在大多数情况下,定义通用实现是不可能的.那么在接口方法的公共定义(不是完美的通用实现)中然后在必要时覆盖它以及为什么java不支持它的问题是什么呢.例如.当我有100个实现接口的类时,其中70个具有共同的实现,而其他具有不同的实现.为什么我必须在70多个类的接口中定义公共方法,为什么我不能在Interface中定义它们然后在其他30个类中覆盖它们,这使我免于在70个类中使用相同的代码.我对接口的理解是错误的吗?

java inheritance interface

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

/ g modifier vs while循环

我正在解决谷歌代码堵塞问题的实践问题.每当我有同样键的字母ab11 1我曾在键入它们之间的空间.所以我将每个单独的字母转换为相应的数字序列并将它们放在一个数组中.我用':'加入了他们.每当我用':'连续分隔相同的数字时,我就用''替换它们.我使用以下正则表达式和全局修饰符.

    my $translated = '333:33:3:333'; # edce
    $translated =~ s/(\d+):\g{1}/$1 $1/g;
    print $translated;
Run Code Online (Sandbox Code Playgroud)

产量

333 33:3 333
Run Code Online (Sandbox Code Playgroud)

我不得不再次使用正则表达式来获得输出333 33 3 333.我有全局修饰符,但它不起作用.我尝试了一个while循环

1 while($translated =~ s/(\d+):\g{1}/$1 $1/g);
print $translated
Run Code Online (Sandbox Code Playgroud)

产量

333 33 3 333
Run Code Online (Sandbox Code Playgroud)

编辑:

我得到问题的解决方案我的问题是

为什么全局修饰符不起作用?

regex perl

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

Perl autosplit内部引用

我尝试使用以下一个内容打印我的apache2访问日志日期.在单引号内,它显示值但在双引号内显示​​为Array对象.我的命令如下

sudo perl -ane 'print $F[3] . "\n" ' /var/log/apache2/access.log | head -n 10  
Run Code Online (Sandbox Code Playgroud)

产量

[21/Jul/2014:09:16:05
[21/Jul/2014:09:16:05
[21/Jul/2014:11:32:55
[21/Jul/2014:11:32:55
[21/Jul/2014:11:32:59
[21/Jul/2014:11:33:02
[21/Jul/2014:11:33:02
[21/Jul/2014:11:33:10
[21/Jul/2014:11:33:14
[21/Jul/2014:11:33:14

sudo perl -ane "print $F[3] . \"\n\" " /var/log/apache2/access.log | head -n 10
Run Code Online (Sandbox Code Playgroud)

产量

ARRAY(0x195fca8)
ARRAY(0x1960128)
ARRAY(0x195fca8)
ARRAY(0x195fd38)
ARRAY(0x1960128)
ARRAY(0x195fca8)
ARRAY(0x195fd38)
ARRAY(0x1960128)
ARRAY(0x195fca8)
ARRAY(0x195fd38)
Run Code Online (Sandbox Code Playgroud)

当我尝试取消引用数组时,它会显示一个.

sudo perl -ane "print @{$F[3]} . \"\n\" " /var/log/apache2/access.log | head -n 10
Run Code Online (Sandbox Code Playgroud)

产量

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

我正在使用带有guake终端的ubuntu 12.04 64位.

perl

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