我來自Lisp並希望開發Iphone應用程序。我希望從其他Lisp或Python開發人員聽到Objective-c與Lisp在抽象方面的比較,如關閉,一流功能,宏等。Objective-C與Lisp相比有多抽象?
4
A
回答
6
Objective-C的歷史植根於SmallTalk,因此,就像Lisp一樣,函數中存在許多使語言有用的東西(在本例中爲類的方法),您可以在運行時使用自己的代碼重寫該語言,並且可以在運行時將函數添加到類中。但是,在Objective-C中,底層C永遠不會很遠,因此與Lisp不同的是,您不必擔心內存管理等問題,而且語言顯然比功能更爲程序化。
最近Objective-C編譯器增加了對「塊」(即閉包)的支持。
當然,Objective-C仍然是一種編譯語言,並且它所具備的所有功能都可以在Lisp,Python或SmallTalk中找到。我可能會得到一些贊成票,但是考慮到你的背景,我認爲你會發現Objective-C是一個完全動態的解釋型語言,可以在編譯語言的時候獲得最接近的東西。
爲防萬一你沒有檢查或有人過來看這個問題需要它,看看the Wikipedia section on Objective-C syntax。
作爲一個PS,根據你在做什麼,你可能也會對PhoneGap等工具感興趣,這些工具可以讓你在JavaScript中開發iPhone(和其他移動平臺),因爲JavaScript儘管有它的名字和類C語法,有很多你在Lisp中擁有的權力。
相關問題
- 1. Data.Sequence.Seq與[]相比有多快?
- 2. 與Qt相比,Lua與QtScript相比有多容易?
- 3. 抽象與抽象類
- 4. pycaffe與caffe相比訓練有多好?
- 5. Mono Touch與iPhone SDK相比有多好?
- 6. 是否與抽象類相反?
- 7. 比較沒有RTTI的抽象類?
- 8. 與抽象類
- 9. 抽象與否?
- 10. 與抽象類
- 11. 與抽象類
- 12. Slimmer Javascript Canvas抽象比Processing.js
- 13. 抽象類與抽象字段和子類化沒有鑄造
- 14. Spring Cache抽象與多值查詢
- 15. Grails與抽象類的一對多
- 16. 多態性與抽象類(C++)
- 17. 型號多種與抽象類
- 18. 選擇所有球員對象ObjectiveC
- 19. MVC3 ...更多抽象?
- 20. Java中的抽象對象比較
- 21. 抽象與繼承
- 22. 抽象類與automapper
- 23. 抽象類沒有抽象方法
- 24. 抽象基類有抽象嵌套類
- 25. Common Lisp與MacLisp/InterLisp的比較
- 26. 有多列與靈活抽象表的單個固定表
- 27. 具有多個級別的抽象類
- 28. 抽象基類沒有多態性
- 29. 抽象與外觀有什麼區別?
- 30. 抽象類繼承具有相同函數名稱的另一個抽象類
請重新閱讀[faq](http://stackoverflow.com/faq),這種類型的問題在這裏是題外話。 – Mat 2011-04-23 13:31:11
@Mat,我認爲這個問題不是主觀的,明確的定義和幫助。我只希望標題不是用「評級」Objective-C來表示的。但是對語言特徵和另一種語言差異的調查似乎是合理的。 – 2011-04-23 14:36:13
@Kirk Woll:標題和措辭使我發表了上述評論 - 也是「開放式」,「討論」式的問題。 「我應該記住Objective-C中關閉的實現,來自Lisp的背景」(或者這個效果),聽起來確實是一個很好的問題。好東西「關閉」功能需要很多選票,我猜:-) – Mat 2011-04-23 14:50:41