
- LISP 教程
- LISP - 首頁
- LISP - 概述
- LISP - 環境
- LISP - 程式結構
- LISP - 基本語法
- LISP - 資料型別
- LISP - 宏
- LISP - 變數
- LISP - 常量
- LISP - 運算子
- LISP - 決策
- LISP - 迴圈
- LISP - 函式
- LISP - 謂詞
- LISP - 數字
- LISP - 字元
- LISP - 陣列
- LISP - 字串
- LISP - 序列
- LISP - 列表
- LISP - 符號
- LISP - 向量
- LISP - 集合
- LISP - 樹
- LISP - 雜湊表
- LISP - 輸入 & 輸出
- LISP - 檔案I/O
- LISP - 結構體
- LISP - 包
- LISP - 錯誤處理
- LISP - CLOS (公共Lisp物件系統)
- LISP 有用資源
- Lisp - 快速指南
- Lisp - 有用資源
- Lisp - 討論
Lisp - 函式
函式是由一組語句組成的,這些語句共同執行一項任務。
您可以將程式碼分成單獨的函式。如何將程式碼劃分到不同的函式中取決於您自己,但邏輯上,劃分通常是讓每個函式執行特定任務。
在LISP中定義函式
名為defun的宏用於定義函式。defun宏需要三個引數:
- 函式名稱
- 函式的引數
- 函式體
defun的語法如下:
(defun name (parameter-list) "Optional documentation string." body)
讓我們用簡單的例子來說明這個概念。
示例
讓我們編寫一個名為averagenum的函式,它將列印四個數字的平均值。我們將把這些數字作為引數傳送。
建立一個名為main.lisp的新原始碼檔案,並在其中鍵入以下程式碼。
main.lisp
; define a function to get average of four numbers (defun averagenum (n1 n2 n3 n4) (/ ( + n1 n2 n3 n4) 4) ) ; call the function and print the result (write(averagenum 10 20 30 40))
輸出
執行程式碼時,它返回以下結果:
25
示例
讓我們定義並呼叫一個函式,當給出圓的半徑作為引數時,該函式將計算圓的面積。
建立一個名為main.lisp的新原始碼檔案,並在其中鍵入以下程式碼。
main.lisp
; define a function to caculate area of circle (defun area-circle(rad) ;Calculates area of a circle with given radius ; terminate printing (terpri) ; print the radius (format t "Radius: ~5f" rad) ; print the area (format t "~%Area: ~10f" (* 3.141592 rad rad)) ) (area-circle 10)
輸出
執行程式碼時,它返回以下結果:
Radius: 10.0 Area: 314.1592
注意事項
請注意:
您可以提供一個空列表作為引數,這意味著函式不接受任何引數,列表為空,寫成()。
LISP還允許可選引數、多個引數和關鍵字引數。
文件字串描述了函式的目的。它與函式名稱相關聯,可以使用documentation函式獲取。
函式體可以包含任意數量的Lisp表示式。
函式體中最後一個表示式的值將作為函式的值返回。
您還可以使用return-from特殊運算子從函式中返回值。
相關概念
讓我們簡要討論以上概念。點選以下連結查詢詳細資訊:
廣告