小编joh*_*902的帖子

为什么这个Haskell代码用-O运行得慢?

这段Haskell代码运行慢得多-O,但-O应该是非危险的.谁能告诉我发生了什么?如果重要,它是尝试解决这个问题,它使用二进制搜索和持久段树:

import Control.Monad
import Data.Array

data Node =
      Leaf   Int           -- value
    | Branch Int Node Node -- sum, left child, right child
type NodeArray = Array Int Node

-- create an empty node with range [l, r)
create :: Int -> Int -> Node
create l r
    | l + 1 == r = Leaf 0
    | otherwise  = Branch 0 (create l m) (create m r)
    where m …
Run Code Online (Sandbox Code Playgroud)

optimization haskell ghc compiler-bug

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

函数返回的字符串文字的生命周期

考虑以下代码:

const char* someFun() {
    // ... some stuff
    return "Some text!!"
}

int main()
{
   { // Block: A
      const char* retStr = someFun();
      // use retStr
   }
}
Run Code Online (Sandbox Code Playgroud)

在函数中someFun(),"Some text!!"存储的位置(我认为它可能在ROM的某个静态区域)以及它是什么范围 一生?

指向的内存是否会在retStr整个程序中被占用,或者在块A退出后被释放?

c c++ lifetime string-literals

25
推荐指数
3
解决办法
5435
查看次数

多个外键?

我有一张桌子应该跟踪从一个供应商到另一个供应商的产品运输的日期和成本.我们(出色地:p)将运输供应商(FedEx,UPS)和产品处理供应商(Think ... Dunder Mifflin)存储在"供应商"表中.所以,我的SHIPPING_DETAILS表中有三列都引用了VENDOR.no.出于某种原因,MySQL不允许我将所有三个定义为外键.有任何想法吗?

CREATE TABLE SHIPPING_GRID(  
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique ID for each row',  
    shipping_vendor_no INT(6) NOT NULL COMMENT 'Foreign key to VENDOR.no for the shipping vendor (vendors_type must be 3)',  
    start_vendor_no INT(6) NOT NULL COMMENT 'Foreign key to VENDOR.no for the vendor being shipped from',  
    end_vendor_no INT(6) NOT NULL COMMENT 'Foreign key to the VENDOR.no for the vendor being shipped to',  
    shipment_duration INT(1) DEFAULT 1 COMMENT 'Duration in whole days shipment will take', …
Run Code Online (Sandbox Code Playgroud)

mysql sql foreign-keys

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

Google Chrome上的ReferenceError但Firefox上没有(Browser Bug?)

这段代码

eval(`
    let a = 0;
    function f() {}
    function g() { a; }
    console.log(f);
`);
Run Code Online (Sandbox Code Playgroud)

在Firefox 48.0上运行正常,同时导致Uncaught ReferenceError: f is not defined谷歌Chrome 52.0.2743.116(64位).

它也适用于谷歌浏览器

  • eval 没用过,或者
  • 里面的代码eval是环绕{},或
  • a未引用g,或
  • let改为var,或
  • "use strict" 在代码之前添加

这里发生了什么事?

javascript google-chrome referenceerror

14
推荐指数
2
解决办法
1199
查看次数

单引号之间的Java正则表达式内容

我试图用Java编写一个正则表达式来查找单引号之间的内容.可以请一位帮助我吗?我尝试了以下但在某些情况下它不起作用:

Pattern p = Pattern.compile("'([^']*)'");
Run Code Online (Sandbox Code Playgroud)
  1. 测试案例: 'Tumblr'是一个了不起的应用预期输出: Tumblr

  2. 测试案例: Tumblr是一个惊人的"应用程序" 预期输出: 应用程序

  3. 测试案例: Tumblr是一个"惊人的"应用程序预期输出: 惊人的

  4. 测试案例: Tumblr'很棒'和'惊人' 预期输出: 真棒,令人惊叹

  5. 测试案例: Tumblr的用户感到失望预期输出:

  6. 测试案例: Tumblr的"收购"完成但用户的忠诚度令人怀疑预期产出: 收购

我很感激任何帮助.

谢谢.

java regex quotes

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

JLS的哪一部分表示匿名类不能拥有public/protected/private成员类

考虑一下这段代码:

public class TopLevelClass {
    Cloneable c = new Cloneable() {
        private int privateField;
        private void privateMethod() {};
    };
}
Run Code Online (Sandbox Code Playgroud)

有一个匿名类,它有一个private成员字段和一个private成员方法.它已成功编译.

然后考虑这个:

public class TopLevelClass {
    Cloneable c = new Cloneable() {
        private class PrivateInnerClass {}
    };
}
Run Code Online (Sandbox Code Playgroud)

有一个匿名类,它有一个private成员类.然而...

  • javac说: error: modifier private not allowed here
  • 日食说:Illegal modifier for the local class PrivateInnerClass; only abstract or final is permitted 真的是本地课吗?

什么?为什么匿名类不能有public,protectedprivate(以下简称为those)成员类而它们可具有those构件的字段和方法? …

java access-modifiers anonymous-class inner-classes jls

11
推荐指数
2
解决办法
639
查看次数

IE中的"预期功能"错误:'<input onclick ="start();" ......'

有一段HTML:

<input onclick="start();" type="button" value="Start!"/>
Run Code Online (Sandbox Code Playgroud)

在Firefox和Chrome中,它会start在点击时调用.但是在IE9中会产生错误消息:SCRIPT5002: Function expected.然后我尝试了几种不同的情况:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <script>
        function start(){
            alert("Let's start");
        }
        function stop(){
            alert("Let's stop");
        }
    </script>
    <input onclick="start();" type="button" value="Start!"/><br/> <!-- Failed : the main issue -->
    <span onclick="start();">Start!</span><br/> <!-- Work -->
    <input onclick="stop();" type="button" value="Stop!"/><br/> <!-- Work -->
    <input onclick="start();" type="text" value="Start!"/><br/> <!-- Failed -->
    <input onmouseover="start();" type="button" value="Start!"/><br/> <!-- Failed -->
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
  1. 原案:失败(这就是我在这里的原因.)
  2. 使用a span而不是input:Success
  3. 使用其他功能名称:成功
  4. 使用其他类型:失败
  5. 使用onmouseover …

html javascript internet-explorer

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

静态变量构造函数/析构函数的异常

嗨,我在网络教程中找到了这一行.

当声明一个静态对象并且析构函数抛出异常时会发生什么?
与静态构造函数异常一样,应用程序将崩溃.

如果对象是静态的,我无法理解有什么区别......

谢谢

c++ try-catch

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

平方根总和的比较

我有MinGW GCC 4.8.1和以下代码:

#include <iostream>
#include <cmath>

double eval(int a, int b){
    return std::sqrt(a) + std::sqrt(b);
}

int main(){
    double first = eval(545, 331);
    double second = eval(545, 331);

    if(first < second)
        std::cout << "first <  second" << std::endl;
    if(first == second)
        std::cout << "first == second" << std::endl;
    if(first > second)
        std::cout << "first >  second" << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

如果编译-O0,程序打印预期的结果:

first == second
Run Code Online (Sandbox Code Playgroud)

但是,如果使用-O1,-O2或编译-O3程序打印:(结果在ideone上)

first <  second
first == …
Run Code Online (Sandbox Code Playgroud)

c++ sqrt

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

Java计算器将数字添加到文本字段

我正在制作一个计算器来测试我的java技能.如何在jTextfield中显示数字,直到我按下一个按钮来计算数字; 我希望每个数字都显示在文本字段中.例如,如果我按1和零,我希望文本字段有10.

int num;
JTextField in = new JTextField(20); // input field where numbers will up;

public void actionPerformed(ActionEvent e) {
    if (e.getSource() == bouttons.get(0)) {
        num = 0;
        in.setText("" + num);
    }
    if (e.getSource() == bouttons.get(1)) {
        int num = 1;
        in.setText("" + num);
    }
}
Run Code Online (Sandbox Code Playgroud)

截图

java calculator button textfield

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