我在ghci中输入多行命令时遇到问题.
以下2行代码适用于文件:
addTwo :: Int -> Int -> Int
addTwo x y = x + y
Run Code Online (Sandbox Code Playgroud)
但是当我进入ghci时,我会遇到错误.
我也尝试将代码放在里面:{ ... :},但它们也不适用于这个例子,因为这只是将行追加到一行,但不应该是这样.
我使用的是WinGHCi,版本2011.2.0.1
要使用*.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)
这两种方法有什么区别,哪种方法用于什么目的?
以下是来自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) 我正在尝试使用jacoco测量我的代码覆盖率,但我不明白黄线的含义.该文件说这是一个没有完全覆盖的情况.但是看到我得到的覆盖快照 - 显然条件被命中因为后续行是绿色的,所以为什么条件标记为黄色?

此外,如果您可以快速参考jacoco可以显示的所有报道项目(除了线路覆盖范围),这将有很大帮助.
我正在尝试将参数从 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) 我正在使用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的情况下使用任何警告?
我正在尝试使用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安装中的一个错误):
C/ProgramFiles/Haskell/bin- 这个目录不存在,因为我在D盘中安装了Haskell.userxxx/ApplicationData/cabal/bin- 此目录不存在.我试图在HaskellPlatform中提交错误报告,但我没有权限这样做.
如何处理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) 我用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 线上也遇到了同样的错误。
如何让 …
一起使用 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)