小编Jul*_*les的帖子

用于将函数从monad应用于值的Haskell运算符或函数?

我在Haskell中寻找一个函数或运算符,它实际上是一个运算符的Monad等价物,它应用了一个monadic动作而不是一个裸函数,而不是这个:Applicative<*>

(<*>) :: Applicative f => f (a -> b) -> f a -> f b

我正在寻找看起来像这样的东西:

... :: Monad m => m (a -> m b) -> m a -> m b

我无法相信这不是一个标准功能,但我看不到任何匹配的东西.我错过了什么吗?

monads haskell

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

配置electronic-webpack渲染器以使用nodeIntegration:false

我正在尝试配置electron-webpack的渲染器构建设置,以便它们在nodeIntegration设置为false 的浏览器窗口中工作.这意味着节点API不可用,这会导致以下问题:

  • webpack似乎假设有一个require已经可用的实现,因此不包括它自己在生成的bundle中,而只是简单地添加捆绑的定义module.exports(导致module加载bundle时未定义的错误)

  • html-webpack-plugin正在用于生成index.html文件,并<script>require("source-map-support/source-map-support.js").install()</script>在加载包之前添加到输出.此行需要在捆绑加载行之后移动,但看不到任何方法.

我尝试在我的设置中设置以下内容package.json:

"electronWebpack": {
  "renderer": {
    "webpackConfig": "renderer.additions.webpack.js"
  }
}
Run Code Online (Sandbox Code Playgroud)

包含以下renderer.additions.webpack.js文件:

module.exports = {
    target: 'web',              // node integration is turned off, so use standard web settings.
    externals: ['electron']     // do not rely on ability to load code externally: only specifically known-preloaded modules are to be excluded from the package
}
Run Code Online (Sandbox Code Playgroud)

但这似乎没有改变任何东西.有任何建议如何使这项工作?

webpack electron

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

不在范围内:数据构造函数`String'

我是Haskell的新手.我在包含"String"的代码的几乎每一行中都得到了"不在范围内:数据构造函数`String'"

请看一下我的代码,让我知道我做错了什么.非常感谢你的帮助,谢谢.

import Data.Maybe

data Op = Add | Sub | Mul | Div | And | Or | Not | Eq | Less | Great
    deriving (Eq, Show)

data Exp = Literal Value
     | Primitive Op [Exp]
     | Variable String
     | If Exp Exp Exp
     | Let [(String, Exp)] Exp
    deriving (Show, Eq)

data Value = Number Int
       | Bool Bool
    deriving (Eq, Show)

type Env = [(String, Value)]

eval :: Env -> Exp -> Value
eval e (Literal …
Run Code Online (Sandbox Code Playgroud)

haskell

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

段落使用Stanford CoreNLP

有没有办法从Stanford CoreNLP中提取段落信息?我目前正在使用它从文档中提取句子,但我也有兴趣确定文档的段落结构,我理想情况下CoreNLP会为我做.我在源文档中将段落作为双换行符.我查看了CoreNLP的javadoc,似乎有一个ParagraphAnnotation类,但文档似乎没有指定它包含的内容,我看不到任何地方如何使用它的例子.谁能指出我正确的方向?

作为参考,我当前的代码是这样的:

    List<CoreMap> sentences = document.get(SentencesAnnotation.class);
    List<Sentence> convertedSentences = new ArrayList<> ();
    for (CoreMap sentence : sentences)
    {
        convertedSentences.add (new Sentence (sentence));
    }
Run Code Online (Sandbox Code Playgroud)

句子的构造函数从句子中提取单词.我如何扩展这一点以便获得额外的数据级别,即我当前的文档范围内的"convertedSentences"列表由"convertedParagraphs"列表补充,其中每个条目包含一个"convertedSentences"列表?

我尝试了对我来说最明显的方法:

List<CoreMap> paragraphs = document.get(ParagraphsAnnotation.class);
for (CoreMap paragraph : paragraphs)
{
        List<CoreMap> sentences = paragraph.get(SentencesAnnotation.class);
        List<Sentence> convertedSentences = new ArrayList<> ();
        for (CoreMap sentence : sentences)
        {
            convertedSentences.add (new Sentence (sentence));
        }

        convertedParagraphs.add (new Paragraph (convertedSentences));
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用,所以我想我误解了一下这应该是怎么回事.

java nlp stanford-nlp

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

如何在 CMake 3.1 中禁用关于未定义 cygwin WIN32 的警告?

我以前从未使用过 CMake,但我正在尝试一个不支持任何其他构建系统的 IDE (CLion),所以我尝试了一下。在每次构建开始时,我都会收到以下警告:

/cygdrive/c/Users/admin/.clion10/system/cygwin_cmake/share/cmake-3.1.2/Modules/Platform/CYGWIN.cmake 中的 CMake 警告:15(消息):CMake 不再在 Cygwin 上定义 WIN32!

(1) 如果您只是尝试构建此项目,请忽略此警告或通过在您的环境或 CMake 缓存中设置 CMAKE_LEGACY_CYGWIN_WIN32=0 将其静音。如果以后出现配置或构建错误,那么这个项目可能是在 Cygwin 是 WIN32 的假设下编写的。在这种情况下,请改为设置 CMAKE_LEGACY_CYGWIN_WIN32=1。

(2) 如果你正在开发这个项目,添加这行

set(CMAKE_LEGACY_CYGWIN_WIN32 0) # Remove when CMake >= 2.8.4 is required
Run Code Online (Sandbox Code Playgroud)

在顶级 CMakeLists.txt 文件的顶部,或将所需的最低 CMake 版本设置为 2.8.4 或更高版本。然后教你的项目在没有 WIN32 的情况下在 Cygwin 上构建

我已经尝试了两种建议的解决方案。这是我的 CMakeLists.txt 文件的前两行:

cmake_minimum_required(VERSION 3.1)
set(CMAKE_LEGACY_CYGWIN_WIN32 0)
Run Code Online (Sandbox Code Playgroud)

但我仍然收到警告。我该如何摆脱它?

cygwin cmake

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

在打字稿中输入 nodejs stream.Stream?

我正在尝试为包含从 nodejs类继承的类的节点模块编写stream.Stream类型……但我在 typescript NodeJS模块中找不到该类。它在哪里,我应该如何处理这个StreamStack类的类型,它似乎是 aReadableStream或 aWritableStream取决于上下文?

node.js typescript typescript-typings

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

UrlEncodedFormEntity的Android HTTP上传进度

有几个问题讨论了如何使用multipart/form-data数据格式将进度指示添加到Android中的HTTP文件上传中.建议的典型方法是顶级答案的缩影,无法在http POST文件上传(Android)中获取进度 - 包括完整Apache HTTPClient库中的MultipartEntity类,然后将其用于获取数据的输入流包装在一个在读取字节时计算字节数.

这种方法适用于这种情况,但不幸的是,对于通过UrlEncodedFormEntity发送数据的请求不起作用,UrlEncodedFormEntity期望其数据在Strings而不是InputStreams中传递给它.

所以我的问题是,有哪些方法可以通过这种机制确定上传的进度?

android httpclient

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

Android相机 - 设置引起运行时异常的焦点区域

我正在尝试开发自动聚焦在相机框架中间的大对象的代码.这是我的代码:

        Log.i (TAG, "Picking supported size " + selected.width + "x" + selected.height);
        parameters.setPictureSize (selected.width, selected.height);
        try
        {
            parameters.setFocusAreas (Arrays.asList (
                new Camera.Area (
                    new Rect(selected.width/3, selected.height/3, (selected.width*2)/3, (selected.height*2)/3), 
                    1)
                ));
        }
        catch (Exception e)
        {
            Log.w (TAG, "Set focus area failed", e);
        }
        catch (NoClassDefFoundError e)
        {
            Log.w (TAG, "Set focus area failed", e);                
        }
        camera.setParameters (parameters);
Run Code Online (Sandbox Code Playgroud)

三星Galaxy S2与CM9的结果是:

I/ImageCaptureActivity(28885): Picking supported size 2048x1232
E/ISecCameraHardware(1874): android::status_t android::ISecCameraHardware::checkArea(ssize_t, ssize_t, ssize_t, ssize_t, ssize_t): Camera area right coordinate is invalid 1365
E/ISecCameraHardware(1874): …
Run Code Online (Sandbox Code Playgroud)

android android-camera

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

在变压器堆栈中展开STT monad?

这个问题显然与这里这里讨论的问题有关.不幸的是,我的要求与这些问题略有不同,所给出的答案并不适用于我.我也不太明白为什么 runST不能在这些情况下键入检查,这没有帮助.

我的问题是,我有一段代码使用一个monad堆栈,或者更确切地说是一个monad:

import Control.Monad.Except
type KErr a = Except KindError a
Run Code Online (Sandbox Code Playgroud)

另一段代码需要与此集成,将其包装在STT monad中:

type RunM s a = STT s (Except KindError) a
Run Code Online (Sandbox Code Playgroud)

在这些部分之间的界面上,我显然需要包裹和展开外层.我有以下功能在KErr- > RunM方向工作:

kerrToRun :: KErr a -> RunM s a
kerrToRun e = either throwError return $ runExcept e
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,我只是不能反过来键入检查:

runToKErr :: RunM s a -> KErr a
runToKErr r = runST r
Run Code Online (Sandbox Code Playgroud)

我正在做的假设是,由于RunM内部monad具有相同的结构KErr,我可以在我打开STT图层后返回它,但我似乎无法做到这一点,因为runST抱怨它的类型参数:

src/KindLang/Runtime/Eval.hs:18:21:
    Couldn't …
Run Code Online (Sandbox Code Playgroud)

polymorphism haskell higher-rank-types

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

尝试使用类型族来消除具有灵活上下文的重叠实例的歧义时出错

我试图在我正在使用的类型的类型参数上使用一些相当复杂的条件来定义类型类的实例,并且认为一个有用的方法是声明一个封闭的类型系列,该系列在我定义的实例之间进行选择。不幸的是,我根本无法让这个想法发挥作用,因为 GHC 抱怨这些实例是重复的。这是一个简化的示例,它给出了我所看到的相同错误:

{-# LANGUAGE FlexibleInstances, TypeFamilies #-}
data MyContainer a = NoValue | OneValue a | TwoValues a a

data Yes
data No

type family IsInt t where
    IsInt Int = Yes
    IsInt a   = No

instance IsInt t ~ Yes => Show (MyContainer t) where
    show _ = "Type is int"
instance IsInt t ~ No => Show (MyContainer t) where
    show _ = "Type is not int"
Run Code Online (Sandbox Code Playgroud)

我看到的错误是:

src/Test.hs:11:10:
    Duplicate instance declarations:
      instance (IsInt t ~ Yes) …
Run Code Online (Sandbox Code Playgroud)

haskell typeclass type-families

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