小编R71*_*R71的帖子

GHCi中的多行命令

我在ghci中输入多行命令时遇到问题.

以下2行代码适用于文件:

addTwo :: Int -> Int -> Int
addTwo x y = x + y
Run Code Online (Sandbox Code Playgroud)

但是当我进入ghci时,我会遇到错误.

我也尝试将代码放在里面:{ ... :},但它们也不适用于这个例子,因为这只是将行追加到一行,但不应该是这样.

我使用的是WinGHCi,版本2011.2.0.1

haskell ghci

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

用于制作库的ranlib,ar和ld之间有什么区别

要使用*.o文件在c ++/unix中创建库,我注意到我的项目中有两种不同的方式(遗留代码):

ar qc libgraphics.a *.o
ranlib libgraphics.a
Run Code Online (Sandbox Code Playgroud)

ld -r -o libgraphics.a *.o
Run Code Online (Sandbox Code Playgroud)

这两种方法有什么区别,哪种方法用于什么目的?

linker ld unix-ar

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

从模块导出

以下是来自http://www.angelfire.com/tx4/cus/shapes/haskell98.html的代码.如果我在模块头中注释名称,它会在WinGHCi中正确编译和执行.但是如果保留了名称,那么它就不会编译 - 它会在名称MakeCircle上报告错误.我的问题是:如果我想明确提到我想导出MakeCircle,需要更改哪些代码?

module Circle -- (Circle, MakeCircle, getRadius, setRadius)
  where
  import Shape

  class Shape a => Circle a where
      getRadius :: a -> Int
      setRadius :: a -> Int -> a

  instance Shape CircleInstance where
      getX = x
      getY = y
      setX a newx = a {x = newx}
      setY a newy = a {y = newy}
      moveTo a newx newy = a {x = newx, y = newy}
      rMoveTo a deltax deltay = a {x = …
Run Code Online (Sandbox Code Playgroud)

haskell haskell-platform

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

jacoco黄线是什么意思

我正在尝试使用jacoco测量我的代码覆盖率,但我不明白黄线的含义.该文件说这是一个没有完全覆盖的情况.但是看到我得到的覆盖快照 - 显然条件被命中因为后续行是绿色的,所以为什么条件标记为黄色?

屏幕截图

此外,如果您可以快速参考jacoco可以显示的所有报道项目(除了线路覆盖范围),这将有很大帮助.

java jacoco

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

如何将命令行参数从 pytest 传递给代码

我正在尝试将参数从 pytest 测试用例传递给正在测试的模块。例如,使用Python 样板中的 main.py ,我可以从命令行运行它:

$ python3 main.py
usage: main.py [-h] [-f] [-n NAME] [-v] [--version] arg
main.py: error: the following arguments are required: arg
$ python3 main.py xx
hello world
Namespace(arg='xx', flag=False, name=None, verbose=0)
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试对 pytest 做同样的事情,使用以下 test_sample.py

注意: main.py 需要命令行参数。但是这些参数需要在特定测试中进行硬编码,它们不应该是 pytest 的命令行参数。pytest 测试用例只需要将这些值作为命令行参数发送给 main。主要的()。)

import main
def test_case01():
    main.main()
    # I dont know how to pass 'xx' to main.py,
    # so for now I just have one test with no arguments
Run Code Online (Sandbox Code Playgroud)

并按以下方式运行测试:

pytest -vs …
Run Code Online (Sandbox Code Playgroud)

pytest argparse python-3.x

9
推荐指数
2
解决办法
3949
查看次数

如何禁用niogroovymethods的警告

我正在使用groovy-2.3.3,使用jdk6u35.groovy二进制文件是从groovy-sdk-2.3.3.zip中提取的.

用groovyc编译后,运行java时遇到错误:

Unsupported major.minor version 51.0.
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索并认为问题出在groovy-all-2.3.3-indy.jar(用于jdk7 +),所以我从CLASSPATH中删除了它.现在该程序可以运行,但它会发出警告:

WARNING: Module [groovy-all] - Unable to load extension class [org.codehaus.groovy.runtime.NioGroovyMethods]
Run Code Online (Sandbox Code Playgroud)

如何禁用此警告消息,因为我知道它不适用于我的设置?

如果我不能在没有从源代码重新编译的情况下禁用此警告(这对我来说不是一个有效的选项),我是否应该下载任何其他groovy可执行文件,而不是sdk zip文件,以便它可以在没有java-jdk6的情况下使用任何警告?

java groovy

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

编译Cygwin中的Haskell代码,以及Windows上的Haskell平台中的一些其他错误

我正在尝试使用Haskell Platform 2011.2.0.1在Haskell中编译一个简单的hello world程序.如果我在WinGHCi中加载代码,并使用GUI进行编译,则会创建.exe.然后我可以从Cygwin运行.exe.

但是如果我尝试在Cygwin中编译代码(使用ghc --make),链接器就会失败.但是,如果我从Windows cmd提示符编译,那么编译+链接器工作正常.

我需要将任何其他环境变量导入Cygwin,以使编译+链接器工作吗?我已经把下面迪尔斯在我的Cygwin的路径:2011.2.0.1/lib/extralibs/bin,2011.2.0.1/bin(这些是仅有的两个有效的Haskell相关的条目,我可以在Windows环境变量看).

我还注意到Windows环境变量中有几个无效项(这看起来像是Haskell安装中的一个错误):

  1. (system var)C/ProgramFiles/Haskell/bin- 这个目录不存在,因为我在D盘中安装了Haskell.
  2. (user var)userxxx/ApplicationData/cabal/bin- 此目录不存在.

我试图在HaskellPlatform中提交错误报告,但我没有权限这样做.

haskell ghci haskell-platform winghci

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

如何在antlr lexer中处理嵌套注释

如何处理antlr4 lexer中的嵌套注释?即我需要计算此令牌内的"/*"数,并在收到相同数量的"*/"后才关闭.例如,D语言的嵌套注释为"/ + ... + /"

例如,以下行应被视为一个注释块:

/* comment 1
   comment 2
   /* comment 3
      comment 4
   */
   // comment 5
   comment 6
*/
Run Code Online (Sandbox Code Playgroud)

我当前的代码如下,它不适用于上面的嵌套注释:

COMMENT : '/*' .*? '*/' -> channel(HIDDEN)
        ;
LINE_COMMENT : '//' ~('\n'|'\r')* '\r'? '\n'  -> channel(HIDDEN)
        ;
Run Code Online (Sandbox Code Playgroud)

antlr4

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

conda 安装的软件包不适用于 jupyter

我用pip install安装了tensorflow,用conda install安装了keras:(我的python3安装在Anaconda3下)

conda create -n keras python=3.5
activate keras
pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.2.1-cp35-cp35m-win_amd64.whl
conda install --channel https://conda.anaconda.org/conda-forge keras
Run Code Online (Sandbox Code Playgroud)

现在,当我在命令行中运行以下命令时,一切正常:

activate keras
python
import tensorflow
import keras
from keras.datasets import mnist
Run Code Online (Sandbox Code Playgroud)

但是,当我使用 jupyter 运行相同的命令时,在 keras 导入行上出现错误:

activate keras
jupyter notebook
# now open a python3 notebook
# and enter the above commands in it
# and run

ImportError: No module named 'keras'
Run Code Online (Sandbox Code Playgroud)

但是 tensorflow 的导入没有给出错误。

然后我卸载了 tensorflow,并使用 conda install 重新安装了它:

conda install tensorflow
Run Code Online (Sandbox Code Playgroud)

现在,当我运行 jupyter 时,我在 tensorflow 线上也遇到了同样的错误。

如何让 …

python python-3.x conda jupyter jupyter-notebook

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

与 pytest 一起使用时禁用日志记录

一起使用 pytest 和日志记录时遇到问题。当我自己运行一个程序时,我可以看到它的消息打印在屏幕上以及文件 test.log 中。

python3 main.py -> prints on terminal, and also in test.log
Run Code Online (Sandbox Code Playgroud)

但是,当我使用 pytest 运行相同的程序时,我只在屏幕上看到消息,但未创建文件 test.log。

pytest -vs test -> prints only on terminal, but not in test.log
Run Code Online (Sandbox Code Playgroud)

为什么 pytest 会干扰日志记录实用程序,使用 pytest 时我应该怎么做才能创建这些日志文件?

我的版本如下:

platform linux -- Python 3.6.7, pytest-4.0.2, py-1.7.0, pluggy-0.8.0 -- /usr/bin/python3
Run Code Online (Sandbox Code Playgroud)

目录结构如下:

??? logger.py
??? main.py
??? test
    ??? __init__.py
    ??? test_module01.py
Run Code Online (Sandbox Code Playgroud)

这些文件的代码如下:

# logger.py ===================================
import logging

def logconfig(logfile, loglevel):
    print('logconfig: logfile={} loglevel={}..'.format(logfile,loglevel))
    logging.basicConfig(filename=logfile, level=logging.INFO, format='%(asctime)s :: %(message)s')

def logmsg(log_level, msg):
    print(log_level,': ',msg) …
Run Code Online (Sandbox Code Playgroud)

logging pytest python-3.x

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