问题标签 [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.

0 投票
1 回答
212 浏览

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 主题以允许插入断点?

0 投票
1 回答
95 浏览

hy - 循环和转换一系列表单的宏

我正在编写宏来简化使用 matplotlib 制作绘图的过程。我的第一次尝试如下,正常工作:

然后以下代码按预期工作:

其中(在惯用的 Python 中)相当于

这很棒,但我希望能够传递多个表单,每个表单都可以转换,insert-ax所以我可以添加多个图ax,传递其他选项等。具体来说,这将是do-plot这样的

相当于(再次在惯用的 Python 中)

但是以下幼稚的尝试不起作用:

这会返回一个NameError: name 'scatter' is not definedNameError: name 'scatter' is not defined. 但这是可以理解的:maininsert-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'

我还能尝试什么?

0 投票
0 回答
53 浏览

hy - 为什么我的 Hy unknown 和 deftag 版本未定义?

为什么hy unknown

如何使用deftag

来自http://docs.hylang.org/en/stable/language/api.html#deftag的片段

0 投票
1 回答
109 浏览

hy - Hy的漂亮印刷品?

Hy中有类似pprint或可用的东西吗?clojure.pprint/pprint更具体地说,是否有一些东西可以转换如下:

在这个(这是一个例子,不需要完全像下面):

我已经尝试过hy-reprhydiomatic.utils/hypprint但是hy-repr似乎不能很好地打印长地图,并且 hydiomatic 在最近版本的 Hy 中不起作用。

0 投票
1 回答
42 浏览

hy - walk 必须返回与输入相同的类型?

我不清楚outer提供给的功能walk应该如何工作。

此处引用的文档中的示例: https ://docs.hylang.org/en/stable/contrib/walk.html

建议该outer函数可以first返回通过映射生成的集合的第一个元素 with inner

但是,当我尝试在outer(例如sumfirst)中汇总结果时,我收到如下错误-抱怨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]

0 投票
1 回答
138 浏览

python - 如何使用 Hy 模块创建 Python 独立可执行文件?

给定一个入口文件 main.py,如下所示:

给定一个 Hy 文件 hymodule.hy:

如果我使用 pyinstaller 创建一个独立文件:

并执行 main.exe 我得到这个错误:

  • 如果我使用 python(不使用 pyinstaller)执行 main.py,一切正常。
  • 如果我将 hymodule 更改为 Python 模块并使用 pyinstaller,一切正常

使用 Hy 模块创建独立可执行文件的正确方法是什么?

0 投票
2 回答
174 浏览

macros - hy-lang 中的 asyncio 功能时自动插入等待

以下宏可以在使用函数时do/a自动插入。下面也展示了用法。awaitasyncio

该宏通过函数名“/a”检测异步函数。最好 asyncio.iscoroutinefunction用于检测异步函数。但这不起作用。请查看以下宏和执行结果。

您会看到异步函数被视为 hy-lang 宏中的符号。应用eval无法避免这个问题。

如何解决这个问题?

0 投票
1 回答
114 浏览

hy - 为什么'0是假的,而'假是真的?

我在玩符号,很惊讶地看到:

这是一个设计决定吗?在 Hy 上表示布尔值的最佳方式是什么?

0 投票
1 回答
36 浏览

hy - HyLang import_buffer_to_ast 删除版本 0.18.0

我正在从 Hy 0.12.1 更新到最新版本 0.18.0,并且在我的 python 代码中大量使用了 import_buffer_to_ast 函数。

此功能已从 hy.importer 中删除,我希望有人能引导我找到一个好的选择。

0 投票
2 回答
153 浏览

python - 如何在 python 代码中包含 Hy 代码?

例如,我们有这个 Hy 代码:

我们有两段 Python 代码。第一件:

第二张:

我们怎样才能做出这样的事情:

还请包括适当的进口。我还没有找到正确的导入方式Hy