Common list elements: Difference between revisions

Add CLU
(add FreeBASIC)
(Add CLU)
Line 308:
[2,5,1,3,8,9,4,6],[3,5,6,2,9,8,4],[1,3,7,6,9] : 3 6 9
</pre>
=={{header|CLU}}==
<lang clu>contains = proc [T: type] (a: array[T], v: T) returns (bool)
where T has equal: proctype (T,T) returns (bool)
for i: T in array[T]$elements(a) do
if i=v then return(true) end
end
return(false)
end contains
 
common = proc [T: type] (lists: ssT) returns (sT)
where T has equal: proctype (T,T) returns (bool)
sT = sequence[T]
aT = array[T]
ssT = sequence[sequence[T]]
cur: aT := sT$s2a(ssT$bottom(lists))
for i: int in int$from_to(2, ssT$size(lists)) do
next: aT := aT$[]
for e: T in sT$elements(lists[i]) do
if contains[T](cur, e) then
aT$addh(next,e)
end
end
cur := next
end
return(sT$a2s(cur))
end common
 
start_up = proc ()
si = sequence[int]
ssi = sequence[sequence[int]]
nums: ssi := ssi$[
si$[2,5,1,3,8,9,4,6],
si$[3,5,6,2,9,8,4],
si$[1,3,7,6,9]
]
po: stream := stream$primary_output()
for i: int in si$elements(common[int](nums)) do
stream$puts(po, int$unparse(i) || " ")
end
end start_up</lang>
{{out}}
<pre>3 6 9</pre>
 
=={{header|Excel}}==
===LAMBDA===
2,114

edits