小编Ear*_*ine的帖子

如何激活内容辅助 - Java提案

我在Ubuntu 12.10中安装了eclipse.工作了几天后,我创建了我的第一个CDT C++项目,并在那里呆了一段时间.现在,当我回到我的Java项目时,我发现当我输入变量名并按"."时.没有出现.

但是,我可以通过选择"编辑" - >"内容辅助" - >"Java提议"来返回上下文菜单.问题是它根本不方便.单击"默认提案"时,将显示带有"无默认提议"的空上下文菜单.我还确认正在激活正确的"Java"方面.

如何返回原始状态(默认情况下Java提示菜单)?

Eclipse Platform版本为3.7.0.I20120502-2000

eclipse-jdt

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

Monad实例对

这个问题显示了一个实例定义(,) a b,其中a是一个实例Monoid.

但是,我不知道如何编写类似的东西(,) a b,并且b是一个实例Monoid?只要我能写出定义,我基本上可以这样做:

instance Monoid b => Monad ((,) ???) where
    return a = (a,mempty)
    ~(a,b) >>= f = let (c,b1) in f a in (c,b `mappend` b1)
Run Code Online (Sandbox Code Playgroud)

所以问题是如何写这个???部分?

UPDATE

实际上这个问题是一个更通用的问题的特例:是否有可能编写类型类的实例,这些类作用于最终没有出现的某些类型?在我的例子中,类型构造函数是(,) a b,我想让它成为Monad awhere a不是最后一个类型参数的实例.

monads haskell

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

Maven m2e-egit在开普勒下安装失败

今天我从eclipse markerplace安装了Maven插件(m2e).现在我想从github签出一个项目."从SCM中检出Maven项目"对话框显示"SCM类型"下拉列表,因此我单击了一个链接以安装git的连接器.

我在另一个对话框中找到了连接器"m2e-egit",所以我检查了它,单击Finish.它失败并显示以下消息:

Operation details
Cannot complete the install because one or more required items could not be found.
Software being installed: Maven SCM Handler for EGit 0.14.0.201207041402 (org.sonatype.m2e.egit.feature.feature.group 0.14.0.201207041402)
Missing requirement: Maven SCM Handler for EGit 0.14.0.201207041402 (org.sonatype.m2e.egit 0.14.0.201207041402) requires 'bundle org.eclipse.egit.core [1.0.0,3.0.0)' but it could not be found
Cannot satisfy dependency:
From: Maven SCM Handler for EGit 0.14.0.201207041402 (org.sonatype.m2e.egit.feature.feature.group 0.14.0.201207041402)
To: org.sonatype.m2e.egit [0.14.0.201207041402]
Run Code Online (Sandbox Code Playgroud)

它声称我没有安装EGit,但我可以确认我已经从"关于Eclipse功能"对话框安装了Eclipse EGit 3.1.0.20131021548-r.

我能找到的其他信息:

Eclipse:Kelper Service Release 1 - build id 20130919-0819

Eclipse.org - m2e:1.4.0.20130601-0317 …

eclipse git maven

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

如何从Haskell中的内部参数中提取信息?

在大多数支持可变变量的编程语言中,可以轻松实现类似这样的Java示例:

interface Accepter<T> {
    void accept(T t);
}

<T> T getFromDoubleAccepter(Accepter<Accepter<T>> acc){
    final List<T> l = new ArrayList<T>();
    acc.accept(new Accepter<T>(){

        @Override
        public void accept(T t) {
            l.add(t);
        }

    });
    return l.get(0); //Not being called? Exception!
}
Run Code Online (Sandbox Code Playgroud)

对于那些不了解Java的人来说,上面的代码收到的东西可以提供一个带有一个参数的函数,它应该将这个参数作为最终结果.

这不像callCC:没有控制流交替.仅涉及内部函数的参数.

我认为Haskell中的等效类型签名应该是

getFromDoubleAccepter :: (forall b. (a -> b) -> b) -> a
Run Code Online (Sandbox Code Playgroud)

所以,如果有人可以为你(a -> b) -> b选择的某种类型提供功能,那么他必须已经拥有了a.所以你的工作就是给他们一个"回调",而不是保留他们发送给你的任何东西,一旦他们回到你身边,就把这个价值归还给你的来电者.

但我不知道如何实现这一点.我能想到几种可能的解决方案.虽然我不知道它们中的每一个是如何工作的,但我可以根据预期的困难对它们进行评级和排序:

  • Cont或者ContTmonad.我认为这是最简单的.

  • RWS monad或类似的.

  • 任何其他单子.纯粹的 monad就像Maybe我认为更难.

  • 仅使用标准的 …

haskell

0
推荐指数
2
解决办法
268
查看次数

CompositDisposable 还不够懒?

我很惊讶反应式扩展CompositeDisposable类未能通过以下测试

[Test]
public void TestDisposable()
{
    var ds = new List<IDisposable>();
    int[] a = { 1, 2, 3 };
    using (new CompositeDisposable(ds))
    {
        ds.Add(Disposable.Create(() => a[0] = 3));
        ds.Add(Disposable.Create(() => a[2] = 1));
    }
    Assert.That(a[0],Is.EqualTo(3)); //Failed here
    Assert.That(a[1], Is.EqualTo(2));
    Assert.That(a[2], Is.EqualTo(1));
}
Run Code Online (Sandbox Code Playgroud)

所以这意味着如果我CompositeDisposable通过给定 a创建 aIEnumerable<IDisposable>它实际上迭代它的所有元素,而不是将其推迟到Dispose被调用者。

这在其他情况下可能很有用,但在我的情况下却很不方便。是否还有其他课程可以更轻松地完成上述任务?

c# idisposable system.reactive

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

标签 统计

haskell ×2

c# ×1

eclipse ×1

eclipse-jdt ×1

git ×1

idisposable ×1

maven ×1

monads ×1

system.reactive ×1