问题列表 - 第2870页

如何简化基本算术表达式?

如何简化基本算术表达式?

例如

module ExprOps where 

simplify :: Expr -> Expr
simplify (Plus(Var"x") (Const 0)) = Var "x"
Run Code Online (Sandbox Code Playgroud)

我需要做什么?


module Expr where

-- Variables are named by strings, assumed to be identifiers.
type Variable = String

-- Representation of expressions.
data Expr = Const Integer
          | Var Variable
          | Plus Expr Expr
          | Minus Expr Expr
          | Mult Expr Expr
          deriving (Eq, Show)
Run Code Online (Sandbox Code Playgroud)

我想到的简化是:

0*e = e*0 = 0
1*e = e*1 = 0+e = e+0 = e-0 = e
Run Code Online (Sandbox Code Playgroud)

并且简化常量子表达式,例如Plus(Const …

math haskell algebra

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

如何获取正在运行的JAR文件的路径?

我的代码在一个JAR文件中运行,比如说foo.jar,我需要在代码中知道运行foo.jar的文件夹.

所以,如果foo.jar在C:\FOO\,我想要获得该路径,无论我当前的工作目录是什么.

java jar path executable-jar

557
推荐指数
12
解决办法
46万
查看次数

愚蠢和令人沮丧的跨浏览器UI问题

是否有人花了几个小时才能在所有浏览器中正确呈现其应用程序的UI?

当简单的样式倾向于在一个浏览器中工作而不是其他浏览器时,你如何解决这种挫败感?当你发明黑客来处理它时(在某些情况下也不会发生),只有在浪费你的时间之后?

我将等待所有浏览器都遵循相同标准的那一天,直到那时我(和其他人)可以从经常这样做的人那里得到一些建议.

user-interface styles cross-browser

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

与java中的静态字段接口以共享"常量"

我正在寻找一些开源Java项目来进入Java,并注意到它们中有很多都有某种"常量"接口.

例如,processing.org有一个名为PConstants.java的接口,大多数其他核心类实现了这个接口.界面充满了静态成员.有这种方法的理由,还是这被认为是不好的做法?为什么不在有意义的地方使用枚举,或者使用静态类?

我发现使用接口允许某种伪"全局变量"很奇怪.

public interface PConstants {

  // LOTS OF static fields...

  static public final int SHINE = 31;

  // emissive (by default kept black)
  static public final int ER = 32;
  static public final int EG = 33;
  static public final int EB = 34;

  // has this vertex been lit yet
  static public final int BEEN_LIT = 35;

  static public final int VERTEX_FIELD_COUNT = 36;


  // renderers known to processing.core

  static final …
Run Code Online (Sandbox Code Playgroud)

java

113
推荐指数
5
解决办法
11万
查看次数

Elisp中的Regexp包含换行符

我正在尝试在emacs(python-mode)中为Python文档字符串添加一个特殊标记.

目前我能够提取一行:

(font-lock-add-keywords
 'python-mode
 '(("\\(\"\\{3\\}\\.+\"\\{3\\}\\)"
    1 font-lock-doc-face prepend)))
Run Code Online (Sandbox Code Playgroud)

这现在有效:

"""Foo"""
Run Code Online (Sandbox Code Playgroud)

但是很快就会有一个换行符:

"""
Foo

"""
Run Code Online (Sandbox Code Playgroud)

它不再起作用了.这是合乎逻辑的,因为.不包括换行符(\n).我应该使用角色类吗?

如何更正此正则表达式以包含之间的所有内容""" """

提前致谢!

regex emacs elisp

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

最纯粹的架构中BPM的目的是什么?

我正在为一家希望引入BPM(业务流程管理)工具的中型公司整合架构.我知道这会有所帮助,并希望介绍它,但是要在架构中找到合适的位置.

我想知道何时以及如何使用BPM工具,您如何区分业务流程与应用工作流?

architecture business-process-management

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

如何自动创建具有最新编译时间的文件并将其包含到库中?

我有一个包含大约100个源文件的库.如果已经编译了任何其他文件,我希望其中一个源始终重建,但我不希望每次运行make/build时都构建它.

基本上我希望这个文件内置最后的构建日期/时间,因此链接到库的任何应用程序都可以检查上一个构建时间/日期.有没有其他方法可以做到这一点?

c c++ makefile build

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

如何在使用c头时解决名称冲突?

我目前正在使用C/C++进行一些套接字编程.为了能够使用更简洁的界面和更多的OO结构,我决定围绕C套接字API的部分编写一些简单的包装类,但在这样做时我偶然发现了一个问题:

给出以下代码:

// Global method
int foo(int x)
{
    return x;
}

// Class that calls the global method
class FooBar
{
public:
    void foo() { return; };
    void baz() { foo(1); }
};
Run Code Online (Sandbox Code Playgroud)

g ++给出以下错误消息:

test.cpp: In member function ‘void FooBar::baz()’:
test.cpp:10: error: no matching function for call to ‘FooBar::foo(int)’
test.cpp:9: note: candidates are: void FooBar::foo()
Run Code Online (Sandbox Code Playgroud)

重命名类方法可以解决问题.

为什么即使方法签名不同,也存在某种命名冲突?解决这个问题的最佳方法是什么?

谢谢/ Erik

c c++ scope

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

如何在C#中使用ADO获得高效的Sql Server死锁处理?

我有一个类'数据库',作为ADO.net的包装器.例如,当我需要执行一个过程时,我调用Database.ExecuteProcedure(procedureName,parametersAndItsValues).

我们遇到了SQL Server 2000中死锁情况的严重问题.我们团队的一部分正在处理sql代码和事务以最小化这些事件,但我正在考虑使这个数据库类能够抵御死锁情况.

我们希望死锁受害者可能在经过一段时间的延迟后重试,但我不知道是否可能.这是我们使用的方法的代码:

public int ExecuteQuery(string query)
{
    int rows = 0;

    try
    {
        Command.Connection = Connection;
        Command.CommandType = CommandType.Text;

        if(DatabaseType != enumDatabaseType.ORACLE)
          Command.CommandText = query;
        else
          Command.CommandText ="BEGIN " +  query + " END;";



        if (DatabaseType != enumDatabaseType.SQLCOMPACT)
            Command.CommandTimeout = Connection.ConnectionTimeout;

        if (Connection.State == ConnectionState.Closed)
            Connection.Open();

        rows = Command.ExecuteNonQuery();
    }
    catch (Exception exp)
    {
        //Could I add here any code to handle it?
        throw new Exception(exp.Message);
    }
    finally
    {
        if (Command.Transaction == null)
        {
            Connection.Close();
            _connection.Dispose();
            _connection …
Run Code Online (Sandbox Code Playgroud)

c# sql-server ado.net deadlock .net-2.0

21
推荐指数
3
解决办法
3万
查看次数

检查流程状态

我想以编程方式验证应用程序的状态,以查看它是否已崩溃或停止.我知道如何查看进程是否存在于C#中,但我是否也可以看到它是否"没有响应"?

.net c#

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