gpt4 book ai didi

python - 尝试学习 F#...对整数列表进行排序

转载 作者:行者123 更新时间:2023-11-28 19:51:18 26 4
gpt4 key购买 nike

过去几个月我一直在使用 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

最佳答案

将代码从命令式语言移植到函数式语言时,您应该尝试转换代码中使用的算法,而不是代码本身恕我直言。

代码正在执行 selection sort所以您想问问自己,选择排序的作用是什么?

  • 找到最小值
  • 将其放在排序列表的前面。
  • 对其余项目进行排序,将结果放在最小值之后。

那么代码会是什么样子呢?这肯定会起作用:

let rec selection_sort = function
| [] -> []
| l -> let min = List.min l in (* find the minimum *)
let rest = List.filter (fun i -> i <> min) l in (* find the rest *)
let sorted_rest = selection_sort rest in (* sort the rest *)
min :: sorted_rest (* put everything together *)

关于python - 尝试学习 F#...对整数列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6105880/

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