Generic swap: Difference between revisions
Content added Content deleted
(→{{header|Pascal}}: add example) |
|||
Line 838: | Line 838: | ||
a=b; |
a=b; |
||
b=tmp;</lang> |
b=tmp;</lang> |
||
=={{header|Pascal}}== |
|||
{{works with|Free_Pascal|2.6.0}} |
|||
Standard Pascal does not have generics, but FreePascal has a start: |
|||
<lang pascal>program generictest; |
|||
{$mode objfpc} |
|||
type |
|||
generic TSwap<T> = procedure (var a, b: T); |
|||
procedure Proc1(var a, b: integer); |
|||
var |
|||
temp: integer; |
|||
begin |
|||
temp := a; |
|||
a := b; |
|||
b := temp; |
|||
end; |
|||
var |
|||
S, T: integer; |
|||
SwapInt: specialize TSwap<integer>; |
|||
begin |
|||
S := 4; |
|||
T := 3; |
|||
SwapInt := @Proc1; |
|||
writeln(S, T:2); |
|||
SwapInt(S, T); |
|||
writeln(S, T:2); |
|||
end.</lang> |
|||
Output: |
|||
<pre> |
|||
4 3 |
|||
3 4 |
|||
</pre> |
|||
=={{header|Perl}}== |
=={{header|Perl}}== |