在过去的几个月里,我一直在使用Python,现在我正试着给F#一个机会。只是…我不太明白。过去几天我一直在阅读文档,但仍然不完全理解如何完成基本任务。在
我一直在学习tryfsharp.org网站以及fsharp.net网站. 在
例如,我如何完成用Python编写的基本任务,而不是用F?在
unsorted = [82, 9, 15, 8, 21, 33, 4, 89, 71, 7]
sorted = []
for n in range(1,len(unsorted)):
lowest = 0
for i in range(0,len(unsorted)-1):
if unsorted[i] < unsorted[lowest]:
lowest = i
sorted.append(unsorted[lowest])
del unsorted[lowest]
print sorted
请注意,您的python版本不正确。It输出:
缺少
7
。在以下是直接翻译:
^{pr2}$翻译后的版本与Python版本几乎完全相同。但这并不是编写F程序的理想方法。对于F#中的排序算法,您可以在我的博客上阅读一篇博文:
http://fdatamining.blogspot.com/2010/03/test.html
当将代码从命令式语言移植到函数式语言时,您应该尝试转换代码中使用的算法,而不是代码本身。在
代码正在执行selection sort,所以您想问问自己,选择排序是做什么的?在
那么代码会是什么样子呢?这肯定会奏效:
我知道如果你想要一个直接的翻译,这可能不是你想要的,但是F和函数式编程倾向于强调声明式编程而不是命令式语言。例如,如果要对数字列表进行排序,只需对它们进行排序:
如果你在摸索F#方面有困难,不妨多读一点函数式编程的知识,以帮助你理解为什么F#的做法不同。我去年写的这篇文章可能会有帮助
相关问题 更多 >
编程相关推荐