问题标签 [hy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio-code - 配置 Hy 以在 VSCode 上运行
我正在尝试在 Visual Studio Code 中调试 Hy 代码。我已经下载了hy-mode
主题,效果很好。只有一个问题。hy-mode
主题禁用断点。
我可以通过切换到完全不相关的语言(如 CoffeeScript)来为我的 Hy 代码添加断点,然后我的 Python 调试器就可以工作了。但是当我在hy-mode
.
我通过编写导入 Hy 文件的 Python 文件来调试代码。当我在 Python 文件上运行 Python pdb 调试器时,pdb 可以很好地调试 Hy 代码。但是当我hy-mode
处于活动状态时,我无法向 Hy 文件添加断点。
有没有办法编辑 Visual Studio Code 主题以允许插入断点?
hy - 循环和转换一系列表单的宏
我正在编写宏来简化使用 matplotlib 制作绘图的过程。我的第一次尝试如下,正常工作:
然后以下代码按预期工作:
其中(在惯用的 Python 中)相当于
这很棒,但我希望能够传递多个表单,每个表单都可以转换,insert-ax
所以我可以添加多个图ax
,传递其他选项等。具体来说,这将是do-plot
这样的
相当于(再次在惯用的 Python 中)
但是以下幼稚的尝试不起作用:
这会返回一个NameError: name 'scatter' is not definedNameError: name 'scatter' is not defined
. 但这是可以理解的:main
在insert-ax
. 所以接下来的自然尝试:
现在我得到的错误是expanding macro do-plot NameError: name 'cmd' is not defined
. 这可能是因为main
为了使 lfor 循环/列表理解起作用,它没有被引用。所以下一步是尝试取消引用整个循环:
然后我的下一个错误是expanding macro do-plot AttributeError: 'HySymbol' object has no attribute 'c'
. 这似乎表明(因为 AttributeError 似乎与 相关getattr
)~(first body))
在 的定义中insert-ax
被评估为c
。
最后,出于对货物的狂热行为,我尝试了以下方法
(尽管认为 unquote-splicing 会融合我的表格)。这会静默失败并且不会产生任何输出。然而,这里 hy2py 返回相同的错误expanding macro do-plot AttributeError: 'HySymbol' object has no attribute 'c'
我还能尝试什么?
hy - Hy的漂亮印刷品?
Hy中有类似pprint
或可用的东西吗?clojure.pprint/pprint
更具体地说,是否有一些东西可以转换如下:
在这个(这是一个例子,不需要完全像下面):
我已经尝试过hy-repr
,hydiomatic.utils/hypprint
但是hy-repr
似乎不能很好地打印长地图,并且 hydiomatic 在最近版本的 Hy 中不起作用。
hy - walk 必须返回与输入相同的类型?
我不清楚outer
提供给的功能walk
应该如何工作。
此处引用的文档中的示例: https ://docs.hylang.org/en/stable/contrib/walk.html
建议该outer
函数可以first
返回通过映射生成的集合的第一个元素 with inner
。
但是,当我尝试在outer
(例如sum
或first
)中汇总结果时,我收到如下错误-抱怨int
不可迭代-查看源代码我怀疑这是因为(type form)
在宏定义中:
((type form) (outer (HyExpression (map inner form))))
任何人都可以确认并建议是否有办法outer
将不同的类型返回到输入form
?即可以按照我(walk inc sum [1 2 3 4 5])
的期望提供列表的总和吗?[2 3 4 5 6]
python - 如何使用 Hy 模块创建 Python 独立可执行文件?
给定一个入口文件 main.py,如下所示:
给定一个 Hy 文件 hymodule.hy:
如果我使用 pyinstaller 创建一个独立文件:
并执行 main.exe 我得到这个错误:
- 如果我使用 python(不使用 pyinstaller)执行 main.py,一切正常。
- 如果我将 hymodule 更改为 Python 模块并使用 pyinstaller,一切正常
使用 Hy 模块创建独立可执行文件的正确方法是什么?
macros - hy-lang 中的 asyncio 功能时自动插入等待
以下宏可以在使用函数时do/a
自动插入。下面也展示了用法。await
asyncio
该宏通过函数名“/a”检测异步函数。最好 asyncio.iscoroutinefunction
用于检测异步函数。但这不起作用。请查看以下宏和执行结果。
您会看到异步函数被视为 hy-lang 宏中的符号。应用eval
无法避免这个问题。
如何解决这个问题?
hy - 为什么'0是假的,而'假是真的?
我在玩符号,很惊讶地看到:
这是一个设计决定吗?在 Hy 上表示布尔值的最佳方式是什么?
hy - HyLang import_buffer_to_ast 删除版本 0.18.0
我正在从 Hy 0.12.1 更新到最新版本 0.18.0,并且在我的 python 代码中大量使用了 import_buffer_to_ast 函数。
此功能已从 hy.importer 中删除,我希望有人能引导我找到一个好的选择。
python - 如何在 python 代码中包含 Hy 代码?
例如,我们有这个 Hy 代码:
我们有两段 Python 代码。第一件:
第二张:
我们怎样才能做出这样的事情:
还请包括适当的进口。我还没有找到正确的导入方式Hy
。