gpt4 book ai didi

f# - 是否可以将 F# 代码转换为 C# 代码?

转载 作者:行者123 更新时间:2023-12-02 13:50:19 28 4
gpt4 key购买 nike

我之所以问这个问题是因为我正在学习 F# 并且想参加 TopCoder 比赛。但是,F# 并不在其中支持的语言列表中。但 C# 却榜上有名(说实话,除了 Google Code Jam 和 Facebook Hacker cup 之外,几乎所有在线编程比赛都是如此)。

目前我能想到的可能的解决方法是1)找到一个可以将F#源代码直接翻译成C#的翻译器2) 先将F#代码编译成.net可执行文件,然后反汇编回C#代码

最低要求是生成的 C# 必须能够编译为可运行的 .net 可执行文件,最好尽可能减少外部依赖。

第一种方法似乎不太可能,快速谷歌搜索结果没有任何相关结果。方法二看起来更有前途,有 .net 反汇编程序存在。

我尝试了最受欢迎的一种——Red Gate 的 Reflector。虽然它可以完美地反汇编 C# 可执行文件,但它似乎对从 F# 编译的可执行文件存在问题:它很高兴反汇编,但生成的 C# 代码有一些特殊字符,例如在类名中添加前导 $ 符号和其他奇怪的东西,所以它无法编译。我使用的是 Visual Studio 2010 Professional,这是最新的 Reflector beta 版本(免费)。

我在这里遗漏了什么吗?是否可以?

更新:看来这还是不可能的。目前,我将使用 C#。

最佳答案

正如其他人在评论中已经指出的那样 - 如果有某种方法可以做到这一点,那么将会出现很多令人讨厌的情况,它可能无法正常工作并且会非常脆弱......

处理该问题的一种方法(对您来说)是用 F# 编写解决方案,然后将其重写为 C#。这可能听起来很愚蠢,但有一些优点:

  • 在 F# 中,您可以轻松构建解决方案原型(prototype),从而更快地找到合适的解决方案。
  • 将代码转换为 C# 时,您可能会发现自己更频繁地使用 lambda 表达式等功能,因此它甚至可能会提高您的 C# 技能...
  • 如果您依赖.NET 库,那么这部分代码将很容易翻译。

当然,最好的办法是说服组织者他们应该支持 F#(如果他们已经允许使用 C#,这可能不会太困难),但我知道这可能是一个挑战。

关于f# - 是否可以将 F# 代码转换为 C# 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4818332/

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