Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
29
Task/Power-set/EchoLisp/power-set.echolisp
Normal file
29
Task/Power-set/EchoLisp/power-set.echolisp
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
(define (set-cons a A)
|
||||
(make-set (cons a A)))
|
||||
|
||||
(define (power-set e)
|
||||
(cond ((null? e)
|
||||
(make-set (list ∅)))
|
||||
(else (let [(ps (power-set (cdr e)))]
|
||||
(make-set
|
||||
(append ps (map set-cons (circular-list (car e)) ps)))))))
|
||||
|
||||
(define B (make-set ' ( 🍎 🍇 🎂 🎄 )))
|
||||
(power-set B)
|
||||
→ { ∅ { 🍇 } { 🍇 🍎 } { 🍇 🍎 🎂 } { 🍇 🍎 🎂 🎄 } { 🍇 🍎 🎄 } { 🍇 🎂 } { 🍇 🎂 🎄 }
|
||||
{ 🍇 🎄 } { 🍎 } { 🍎 🎂 } { 🍎 🎂 🎄 } { 🍎 🎄 } { 🎂 } { 🎂 🎄 } { 🎄 } }
|
||||
|
||||
;; The Von Neumann universe
|
||||
|
||||
(define V0 (power-set null)) ;; null and ∅ are the same
|
||||
→ { ∅ }
|
||||
(define V1 (power-set V0))
|
||||
→ { ∅ { ∅ } }
|
||||
(define V2 (power-set V1))
|
||||
→ { ∅ { ∅ } { ∅ { ∅ } } { { ∅ } } }
|
||||
(define V3 (power-set V2))
|
||||
→ { ∅ { ∅ } { ∅ { ∅ } } …🔃 )
|
||||
(length V3) → 16
|
||||
(define V4 (power-set V3))
|
||||
(length V4) → 65536
|
||||
;; length V5 = 2^65536 : out of bounds
|
||||
1
Task/Power-set/FunL/power-set-1.funl
Normal file
1
Task/Power-set/FunL/power-set-1.funl
Normal file
|
|
@ -0,0 +1 @@
|
|||
def powerset( s ) = s.subsets().toSet()
|
||||
5
Task/Power-set/FunL/power-set-2.funl
Normal file
5
Task/Power-set/FunL/power-set-2.funl
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
def
|
||||
powerset( {} ) = {{}}
|
||||
powerset( s ) =
|
||||
acc = powerset( s.tail() )
|
||||
acc + map( x -> {s.head()} + x, acc )
|
||||
5
Task/Power-set/FunL/power-set-3.funl
Normal file
5
Task/Power-set/FunL/power-set-3.funl
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
import lists.foldr
|
||||
|
||||
def powerset( s ) = foldr( \x, acc -> acc + map( a -> {x} + a, acc), {{}}, s )
|
||||
|
||||
println( powerset({1, 2, 3, 4}) )
|
||||
19
Task/Power-set/Nim/power-set.nim
Normal file
19
Task/Power-set/Nim/power-set.nim
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
import sets, hashes
|
||||
|
||||
proc hash(x): THash =
|
||||
var h = 0
|
||||
for i in x: h = h !& hash(i)
|
||||
result = !$h
|
||||
|
||||
proc powerset[T](inset: HashSet[T]): auto =
|
||||
result = toSet([initSet[T]()])
|
||||
|
||||
for i in inset:
|
||||
var tmp = result
|
||||
for j in result:
|
||||
var k = j
|
||||
k.incl(i)
|
||||
tmp.incl(k)
|
||||
result = tmp
|
||||
|
||||
echo powerset(toSet([1,2,3,4]))
|
||||
4
Task/Power-set/Sidef/power-set.sidef
Normal file
4
Task/Power-set/Sidef/power-set.sidef
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
var arr = %w(a b c)
|
||||
for i in (0 .. arr.len) {
|
||||
say arr.combinations(i)
|
||||
}
|
||||
3
Task/Power-set/jq/power-set-1.jq
Normal file
3
Task/Power-set/jq/power-set-1.jq
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
def powerset:
|
||||
reduce .[] as $i ([[]];
|
||||
reduce .[] as $r (.; . + [$r + [$i]]));
|
||||
7
Task/Power-set/jq/power-set-2.jq
Normal file
7
Task/Power-set/jq/power-set-2.jq
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
# The power set of the empty set:
|
||||
[] | powerset
|
||||
# => [[]]
|
||||
|
||||
# The power set of the set which contains only the empty set:
|
||||
[ [] ] | powerset
|
||||
# => [[],[[]]]
|
||||
6
Task/Power-set/jq/power-set-3.jq
Normal file
6
Task/Power-set/jq/power-set-3.jq
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
def powerset:
|
||||
if length == 0 then [[]]
|
||||
else .[0] as $first
|
||||
| (.[1:] | powerset)
|
||||
| map([$first] + . ) + .
|
||||
end;
|
||||
Loading…
Add table
Add a link
Reference in a new issue