Abstract type: Difference between revisions
Content added Content deleted
(Added COBOL section.) |
|||
Line 435: | Line 435: | ||
<lang lisp>(defprotocol Foo (foo [this]))</lang> |
<lang lisp>(defprotocol Foo (foo [this]))</lang> |
||
=={{header|COBOL}}== |
|||
===Interface=== |
|||
{{trans|F#}} |
|||
<lang cobol> INTERFACE-ID. Shape. |
|||
PROCEDURE DIVISION. |
|||
METHOD-ID. perimeter. |
|||
DATA DIVISION. |
|||
LINKAGE SECTION. |
|||
01 ret USAGE FLOAT-LONG. |
|||
PROCEDURE DIVISION RETURNING ret. |
|||
END METHOD perimeter. |
|||
METHOD-ID. shape-area. |
|||
DATA DIVISION. |
|||
LINKAGE SECTION. |
|||
01 ret USAGE FLOAT-LONG. |
|||
PROCEDURE DIVISION RETURNING ret. |
|||
END METHOD shape-area. |
|||
END INTERFACE Shape. |
|||
CLASS-ID. Rectangle. |
|||
ENVIRONMENT DIVISION. |
|||
CONFIGURATION SECTION. |
|||
REPOSITORY. |
|||
INTERFACE Shape. |
|||
OBJECT IMPLEMENTS Shape. |
|||
DATA DIVISION. |
|||
WORKING-STORAGE SECTION. |
|||
01 width USAGE FLOAT-LONG PROPERTY. |
|||
01 height USAGE FLOAT-LONG PROPERTY. |
|||
PROCEDURE DIVISION. |
|||
METHOD-ID. perimeter. |
|||
DATA DIVISION. |
|||
LINKAGE SECTION. |
|||
01 ret USAGE FLOAT-LONG. |
|||
PROCEDURE DIVISION RETURNING ret. |
|||
COMPUTE ret = width * 2.0 + height * 2.0 |
|||
GOBACK |
|||
. |
|||
END METHOD perimeter. |
|||
METHOD-ID. shape-area. |
|||
DATA DIVISION. |
|||
LINKAGE SECTION. |
|||
01 ret USAGE FLOAT-LONG. |
|||
PROCEDURE DIVISION RETURNING ret. |
|||
COMPUTE ret = width * height |
|||
GOBACK |
|||
. |
|||
END METHOD shape-area. |
|||
END OBJECT. |
|||
END CLASS Rectangle.</lang> |
|||
=={{header|Common Lisp}}== |
=={{header|Common Lisp}}== |