2017-08-01 18 views
-3

爲什麼函數在lua中考慮數據類型? 您可以將函數賦值給變量並將它們作爲參數傳遞給python,但python中沒有函數數據類型。爲什麼lua具有函數數據類型?

+0

也許會更容易將函數存儲在變量中,並將其作爲參數傳遞給其他函數?在Lua中,函數是[first-class objects](https://en.wikipedia.org/wiki/First-class_function),類似於許多[函數式編程語言](https://en.wikipedia.org/wiki/Functional_programming )。 –

+0

但你也可以在python中做到這一點,仍然不是Python中的數據類型。對? – floyd

+2

在Python中,你有沒有嘗試過'類型(some_function)'? –

回答

2

我想你錯了。

如果你看一看到https://docs.python.org/2/reference/datamodel.html#types

你會發現Python的,甚至有多個函數類型。

可贖回類型:

  • 用戶定義函數
  • 用戶定義的方法
  • 發生器功能
  • 內置功能
  • 內置方法
  • ...

Python文檔中還有更多部分提供瞭解釋器支持的各種類型的詳細信息。

爲什麼有一個函數類型?我猜是因爲它對於不同類型的東西具有不同類型是有道理的。如果你沒有不同的類型,你根本不需要類型。有一個函數類型只是隨之而來的。你還會如何分類對函數的引用?

0

Python實際上有一個函數類型,它只叫lambda。在這兩種編程語言中,函數都是一流的值,這只是一種幻想,說你可以像數字或字符串一樣將它們傳遞給函數。如果它適合您的目的和您正在解決的問題,它可以使用functional programming作爲範例。

相關問題