小编Wil*_*sem的帖子

如何避免重新定义VERSION,PACKAGE等

我没有看到任何与GNU autoconf/automake构建有关的问题,但我希望至少有一些人熟悉它.开始:

我有一个项目(我称之为myproject),包括另一个项目(供应商).供应商项目是由其他人维护的独立项目.包含这样的项目是相当简单的,但在这种情况下有一个小问题:每个项目都生成自己的config.h文件,每个文件定义标准宏,如PACKAGE,VERSION等.这意味着,在构建期间,当供应商正在构建中,我收到很多这样的错误:

... warning: "VERSION" redefined
... warning: this is the location of the previous definition
... warning: "PACKAGE" redefined
... warning: this is the location of the previous definition
Run Code Online (Sandbox Code Playgroud)

这些只是警告,暂时至少,但我想摆脱它们.我已经能够通过Google搜索获得的唯一相关信息是automake邮件列表中的这个主题,这不是很多帮助.还有其他人有更好的想法吗?

c unix linux automake autoconf

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

快速访问在C#中保存属性的类型/方法/ ...

我在这里创建了一个名为AAtribute的自定义属性,例如一个名为B的类,其中一个或多个方法使用该属性.是否有可能获得保存属性(在本例中为BMethod1)的方法的MethodInfo作为(其中一个)属性而不遍历整个程序集并查看其属性的所有已定义方法?它们是其他AttributeTargets(参数/类型/属性/ ...)的模拟方式吗?我不想要使用这种类型的属性的所有方法的数组,而只需要使用此Attirbute对象的方法.我想用它来对方法添加额外的约束(返回类型,参数,名称,其他属性用法......).

[AttributeUsage(AttributeTargets.Method)]
public class AAtribute : Attribute {

    //some fields and properties

    public AAtribute () {//perhaps with some parameters
        //some operations
        MethodInfo mi;//acces to the MethodInfo with this Attribute
                      //as an Attribute (the question)
        //some operations with the MethodInfo
    }

    //some methods

}

public class B {

    //some fields, properties and constructors

    [A]
    public void BMethod1 () {
        //some operations
    }

    //other methods

}
Run Code Online (Sandbox Code Playgroud)

c# attributes system.reflection methodinfo

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

打印列表项

List<string> list = new List<string>();    
        list.Add("A");
        list.Add("B");

List<string> list1 = new List<string>();    
        list.Add("a");
        list.Add("b");


    for (int i = 0; i < list.Count; i++)
    {
        // print another list items.
        for (int j = 0; j < list1.Count; j++)
        {
            Console.WriteLine("/" + list[i] + "/" + list1[j]);
        }

    }
Run Code Online (Sandbox Code Playgroud)

我想像这样编码string tmpS =+ list[i];加入下一个列表项togeter.

然后打印 tmpS

但编译错误CS0023:运算符'+'不能应用于'string'类型的操作数.

如何打印下面的所有项目.(任何种类都可以)

A A Ab Aab Aba AB ABa ABb ABab ABba B Ba Bb Bab Bba

(大写号码没有交换.小字符应该被交换.并且始终跟随大写号码附加小字符.)

c# data-structures

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

在C#中解压缩流

我正在使用C#,我正在为互联网下载一个带有一个XML文件的zip文件.我希望加载这个XML文件.这是我到目前为止:

byte[] data;
WebClient webClient = new WebClient();
try {
    data = webClient.DownloadData(downloadUrl);
}
catch (Exception ex) {
    Console.WriteLine("Error in DownloadData (Ex:{0})", ex.Message);
    throw;
}

if (data == null) {
    Console.WriteLine("Bulk data is null");
    throw new Exception("Bulk data is null");
}

//Create the stream
MemoryStream stream = new MemoryStream(data);
XmlDocument document = new XmlDocument();

//Gzip
GZipStream gzipStream = new GZipStream(stream, CompressionMode.Decompress);

//Load report straight from the gzip stream
try {
    document.Load(gzipStream);
}
catch (Exception ex) {
    Console.WriteLine("Error in Load (Ex:{0})", …
Run Code Online (Sandbox Code Playgroud)

.net c# zip

8
推荐指数
3
解决办法
7409
查看次数

为什么双重否定在Prolog中没有约束力

说我有以下理论:

a(X) :- \+ b(X).

b(X) :- \+ c(X).

c(a).
Run Code Online (Sandbox Code Playgroud)

它只是说真的,这当然是正确的,a(X)因为没有b(X)(因为有限的失败否定).因为只有一个b(X)如果没有c(X),我们就有c(a),可以说这是真的.我想知道为什么Prolog没有提供答案X = a?比如说我介绍一些语义:

noOrphan(X) :- \+ orphan(X).

orphan(X) :- \+ parent(_,X).

parent(david,michael).
Run Code Online (Sandbox Code Playgroud)

当然,如果我查询noOrphan(michael),这将导致truenoOrphan(david)false(因为我没有定义父david),但我不知道为什么会有的检测没有积极主动地哪些人(michael,david,...)属于noOrphan/1关系?

这可能是Prolog的回溯机制的结果,但是Prolog可以维持一个状态,该状态验证一个人是否以积极方式(0,2,4,...)否定深度或负面方式(1,3) ,5,...)否定深刻.

prolog

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

精确隐马尔可夫模型训练算法

在大多数情况下,Baum-Welch算法用于训练隐马尔可夫模型.

然而,在许多论文中,有人认为BW算法将进行优化,直到它陷入局部最优.

是否存在实际成功找到全局最优的精确算法(除了枚举几乎所有可能的模型并对其进行评估)?

当然对于大多数应用程序,BW将正常工作.然而,我们有兴趣在减少状态数量时找到信息丢失量的下限.因此,我们总是需要生成最好的模型.

因此,我们正在寻找一种有效的NP-hard算法(只能枚举(可能)指数数量的极值点),而不是模型中每个概率的离散数量的浮点数.

algorithm artificial-intelligence hidden-markov-models

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

是否可以在Visual Studio中更改编码约定

我想改变Visual Studio为WinForms应用程序生成编码模板的方式.

例如在C#中:

  1. 一旦我在设计器上拖放控件,该控件的名称将在CamelCase中
  2. 一旦我定义了控件事件,Visual Studio就会生成代码为CamelCase,然后是"_",然后是pascalCase中的事件名称

我想要的是告诉Visual Studio 在所有情况下都使用pascalCase.这可能吗?如果是这样,怎么样?

c# winforms visual-studio-2012

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

如何使用IronPython将参数传递给Python脚本

我有以下C#代码,我从C#调用python脚本:

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Windows.Forms;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using IronPython.Hosting;
using Microsoft.Scripting.Hosting;
using IronPython.Runtime;

namespace RunPython
{
    class Program
    {
        static void Main(string[] args)
        {
            ScriptRuntimeSetup setup = Python.CreateRuntimeSetup(null);
            ScriptRuntime runtime = new ScriptRuntime(setup);
            ScriptEngine engine = Python.GetEngine(runtime);
            ScriptSource source = engine.CreateScriptSourceFromFile("HelloWorld.py");
            ScriptScope scope = engine.CreateScope();
            source.Execute(scope);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我无法理解代码的每一行,因为我对C#的经验有限.当我运行它时,如何更改此代码以便将命令行参数传递给我的python脚本?

c# python ironpython

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

如何在记录字段中处理Haskell的关键字?

响应Github Gists Rest API的 JSON 包含Haskell的关键字 type.但type不能用作唱片领域.

因此,它不能用于实现Aeson的Generic FromJSON/ToJSON实例.

import Data.Text (Text)

import GHC.Generics (Generic)

type URL = Text

data OwnerType = User deriving (Show)

data Owner = Owner {
      id :: Int,
      gravatar_id :: Text,
      login :: Text,
      avatar_url :: Text,
      events_url :: URL,
      followers_url :: URL,
      following_url :: URL,
      gists_url :: URL,
      html_url :: URL,
      organizations_url :: URL,
      received_events_url :: URL,
      repos_url :: URL,
      starred_url :: URL,
      subscriptions_url :: URL,
      url :: …
Run Code Online (Sandbox Code Playgroud)

haskell aeson

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

在迁移文件中正确声明空Django PostgreSQL JSONField默认值

我有点迷失了解释Django对PostgreSQL JSONField应用默认值解释:

如果为该字段指定默认值,请确保它是可调用的,例如dict(对于空默认值)或返回dict(例如函数)的可调用对象.错误地使用default={}会创建在JSONField的所有实例之间共享的可变默认值.

所以在我的模型文件中,我已经声明了默认值

foo = JSONField(default=dict())
Run Code Online (Sandbox Code Playgroud)

但是,当我为新字段生成迁移操作时,这就是结果

migrations.AddField(
    model_name='bar',
    name='foo',
    field=django.contrib.postgres.fields.jsonb.JSONField(default={}))
Run Code Online (Sandbox Code Playgroud)

我只是不确定这个结果是否符合文档的建议.这是有效的,还是应该修改生成的默认值来调用dict()

python django postgresql

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