gpt4 book ai didi

c++ - 如何制作古怪的数学计算器? (最好是在 C++ 中,但其他的也可以。)

转载 作者:太空狗 更新时间:2023-10-29 20:59:13 24 4
gpt4 key购买 nike

我想知道如何在 C++ 中做一些较低级别的事情,这将允许我做一些“古怪的”数学运算。具体来说,我的两个问题是:

1) 如何定义编译器能够在我的代码中识别的自己的数学符号。换句话说,我不是要解析来自用户的字符串,而是要让编译器将其识别为新的数学运算。

   ex:   3 {+} 4   will actually do 3 – 4  etc.

2) 如何从 ASCII 符号定义自定义数字。例如定义编译器识别的符号#为18(即二进制为00010010)。

   ex:   18 {+} # = 18 - 18 = 0

如果可能的话,我希望能够在编译器层面完成以上两件事。 C++、Java、C、Python 和 Objective-C 的解决方案都很好。请告诉我您的解决方案使用的语言。谢谢! :)

最佳答案

我在评论中说过,这意味着 C++ 中的宏;如果你想要的并不比你展示的复杂多少,它应该可以解决问题。将运算符定义为宏应该适用于简单的查找/替换情况,但它可能不太适合复杂的表达式和某些符号。

在我看来,我认为通过使用中缀函数作为运算符,您想要的东西在 Haskell 中是可行的,但对于初学者来说可能不是直截了当的。看看Lyah并搜索 infixr。不过,您需要具备 Haskell 的基本知识。

使用 Zeta 示例编辑,您可以在 ghci 中运行它:

(<+>) = (-) -- operator definition
(<*>) = (/)

answer = 42
answer <+> 12 -- prints 30
answer <*> 7 -- prints 6.0

关于c++ - 如何制作古怪的数学计算器? (最好是在 C++ 中,但其他的也可以。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25100310/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com