我有以下 Hy 代碼:
(defn quicksort [lst]
(if (< (len lst) 2)
(return lst)
(do
(setv pivot (// (len lst) 2))
(setv (, under same over) (, [] [] []))
(for [i lst]
(if (< i pivot)
(.append under i)
(if (= i pivot)
(.append same i)
(.append over i))))
(return ( (quicksort under) same (quicksort over))))))
我從這個 Python 函式中大致翻譯過來:
def quicksort(lst: list) -> list:
if len(lst) < 2:
return lst
else:
under, same, over = [], [], []
pivot = lst[len(lst)//2]
for i in lst:
if i < pivot:
under.append(i)
elif i == pivot:
same.append(i)
elif i > pivot:
over.append(i)
return (quicksort(under) if under else []) same (quicksort(over) if over else [])
但是,Hy 函式拋出以下錯誤:(在
我呼叫函式是否錯誤?
uj5u.com熱心網友回復:
你寫(// (len lst) 2)的,但對應的 Python 代碼是(get lst (// (len lst) 2)).
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/445487.html
