我的.emacs文件中有以下内容.但它不会更改.json文件中的选项卡宽度.
(setq-default indent-tabs-mode nil)
(setq-default tab-width 2)
(setq standard-indent 2)
我在OS X 10.8.4上使用emacs 24.3
我有一个从数据库填充的Perl变量.它的名字是$path.我需要获取另一个变量$file,它只包含路径名中的文件名.
我试过了:
$file = $path =~ s/.*\///;
我是Perl的新手.
我有一张成对的物品表.我想自己加入它,这样我就可以在一个查询中检索该对的两侧.它是有效的SQL(我认为),SQLite引擎实际上接受它,但我无法让DBIx :: Class咬紧牙关.
package Schema::Half;
use parent 'DBIx::Class';
__PACKAGE__->load_components('Core');
__PACKAGE__->table('half');
__PACKAGE__->add_columns(
  whole_id => { data_type => 'INTEGER' },
  half_id  => { data_type => 'CHAR'    },
  data     => { data_type => 'TEXT'    },
 );
__PACKAGE__->has_one(dual => 'Schema::Half', {
  'foreign.whole_id' => 'self.whole_id',
  'foreign.half_id' => 'self.half_id',
  # previous line results in a '='
  # I'd like a '<>'
});
package Schema;
use parent 'DBIx::Class::Schema';
__PACKAGE__->register_class( 'Half', 'Schema::Half' );
package main;
unlink 'join.db';
my $s = Schema->connect('dbi:SQLite:join.db');
$s->deploy;
my $h = $s->resultset('Half'); …我只是读一点关于HQ9 +编程语言(http://esolangs.org/wiki/HQ9,   http://en.wikipedia.org/wiki/HQ9%2B和HTTP://www.cliff.biffle. org/esoterica/hq9plus.html),它告诉我一些所谓的'累加器',它可以递增,但不能被访问.另外,使用+不会操纵结果:
H+H
Hello World
Hello World
任何人都可以解释我这是如何工作的,这是做什么的,如果它甚至有意义吗?谢谢
我试图使用此代码获取SSID
import Foundation
import SystemConfiguration.CaptiveNetwork
public class SSID {
    class func getSSID() -> String{
        var currentSSID = ""
        let interfaces = CNCopySupportedInterfaces()
        if interfaces != nil {
            let interfacesArray = interfaces.takeRetainedValue() as [String : AnyObject]
            if interfacesArray.count > 0 {
                let interfaceName = interfacesArray[0] as String
                let unsafeInterfaceData = CNCopyCurrentNetworkInfo(interfaceName)
                if unsafeInterfaceData != nil {
                    let interfaceData = unsafeInterfaceData.takeRetainedValue() as Dictionary!
                    currentSSID = interfaceData[kCNNetworkInfoKeySSID] as! String
                    let ssiddata = NSString(data:interfaceData[kCNNetworkInfoKeySSIDData]! as! NSData, encoding:NSUTF8StringEncoding) as! String
                    // ssid data from hex …我想执行一些复杂的@a = @b || @c赋值变换,意图@b是非空(因此在布尔意义上是真的),@c否则.文档明确告诉我,我不能.(事实也是如此!)
"||","//"和"&&"运算符返回最后计算的值(与C的"||"和"&&"不同,返回0或1).
[...]
特别是,这意味着您不应该使用它来在两个聚合之间进行选择以进行分配:
Run Code Online (Sandbox Code Playgroud)@a = @b || @c; # this is wrong @a = scalar(@b) || @c; # really meant this @a = @b ? @b : @c; # this works fine, though
不幸的是,它并没有真正告诉我原因.
我期望会发生的是:
@a = 是一个数组赋值,在右侧引入列表上下文.@b || @c 是右侧,在列表上下文中进行评估.||是C型短路逻辑或.它从左到右进行评估(如果需要)并传播上下文.@b在列表上下文中进行评估.如果为真(即非空),则返回.@c也在列表上下文中进行评估,并返回.显然,我的倒数第二个陈述是错误的.为什么?更重要的是,文档或来源的哪一部分可以解释这种行为?
PS:出于问题的范围,我不遵守文档关于使用三元运算符的建议的原因是我@b实际上是临时的(函数调用结果).
我试图理解Haskell monad,阅读"Monads for the Curious Programmer".我遇到了List Monad的例子:
tossDie=[1,2,3,4,5,6]
toss2Dice = do
    n <- tossDie
    m <- tossDie 
    return (n+m)
main = print toss2Dice
顺便do块产生m为36元素的列表我有点明白-它的每个元素映射n为6个元素的列表,然后串接这些列表.我不明白的是,从6个元素列表到36个元素n的存在是如何改变的m <- tossDie.显然"我们先绑定n然后绑定m"是错误的理解,但是什么是正确的?
我还不完全清楚如何在do块中应用双参数函数.我怀疑这是一个卷曲的情况,但我对它究竟是如何工作有点模糊.
有人可以解释一下上面的两个谜团吗?
在C89中,数组的长度在编译时是已知的.但是在C99中,对于可变长度数组,在运行之前,数组的长度可能是未知的.
那怎么计算呢?
为什么不能以相同的方式计算动态分配的数组的长度?
我想换我围绕如何Haskell的头Control.Arrow的&&&我的作品,但怕我在迷路的边缘.
具体来说,我很困惑(作为初学者)如何从类型签名中理解其行为
(&&&) :: a b c -> a b c' -> a b (c, c')
在
import Control.Arrow
(negate &&& (+5)) <$> [1,2,3]
甚至只是
(negate &&& (+5)) 5
例如,第一个参数是"失踪" b和c,而第二个是缺少公正c',结果看起来对我来说(c, c'),不是a b (c, c').
&&&在某种类型的背景下,有人可以告诉我如何运作吗?
我正在使用以下代码:
<?php
if(extension_loaded("IonCube Loader")) {     
  // Yes
}
else {
  // No
}
?>
我只是担心这对于启用了IonCube的每台服务器都不起作用.它似乎很标准,但我以前从未需要检查.这是检查的最佳方式,还是我应该使用更好的方法?