Data update
This commit is contained in:
parent
ed705008a8
commit
0df55f9f24
2196 changed files with 32999 additions and 3075 deletions
3
Task/Factorial/APL/factorial-4.apl
Normal file
3
Task/Factorial/APL/factorial-4.apl
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
fac←{⍵>1 : ⍵×fac ⍵-1 ⋄ 1}
|
||||
fac 5
|
||||
120
|
||||
5
Task/Factorial/Bruijn/factorial.bruijn
Normal file
5
Task/Factorial/Bruijn/factorial.bruijn
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
:import std/Math .
|
||||
|
||||
factorial [∏ (+1) → 0 | [0]]
|
||||
|
||||
:test ((factorial (+10)) =? (+3628800)) ([[1]])
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
val .factorial = f fold(f .x x .y, pseries .n)
|
||||
val .factorial = f fold(f{x}, 2 .. .n)
|
||||
writeln .factorial(7)
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
val .factorial = f fold(f{x}, 2 .. .n)
|
||||
val .factorial = f if(.x < 2: 1; .x x self(.x - 1))
|
||||
writeln .factorial(7)
|
||||
|
|
|
|||
|
|
@ -1,2 +1,8 @@
|
|||
val .factorial = f if(.x < 2: 1; .x x self(.x - 1))
|
||||
val .factorial = f(.i) {
|
||||
var .answer = 1
|
||||
for .x in 2 .. .i {
|
||||
.answer x= .x
|
||||
}
|
||||
.answer
|
||||
}
|
||||
writeln .factorial(7)
|
||||
|
|
|
|||
|
|
@ -1,8 +1,2 @@
|
|||
val .factorial = f(.i) {
|
||||
var .answer = 1
|
||||
for .x in 2 .. .i {
|
||||
.answer x= .x
|
||||
}
|
||||
.answer
|
||||
}
|
||||
val .factorial = f(.n) for[=1] .x in .n { _for x= .x }
|
||||
writeln .factorial(7)
|
||||
|
|
|
|||
|
|
@ -1,2 +0,0 @@
|
|||
val .factorial = f(.n) for[=1] .x in .n { _for x= .x }
|
||||
writeln .factorial(7)
|
||||
14
Task/Factorial/Refal/factorial.refal
Normal file
14
Task/Factorial/Refal/factorial.refal
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
$ENTRY Go {
|
||||
= <Facts 0 10>;
|
||||
}
|
||||
|
||||
Facts {
|
||||
s.N s.Max, <Compare s.N s.Max>: '+' = ;
|
||||
s.N s.Max = <Prout <Symb s.N>'! = ' <Fact s.N>>
|
||||
<Facts <+ s.N 1> s.Max>;
|
||||
};
|
||||
|
||||
Fact {
|
||||
0 = 1;
|
||||
s.N = <* s.N <Fact <- s.N 1>>>;
|
||||
};
|
||||
|
|
@ -1,4 +1,3 @@
|
|||
@tailrec
|
||||
_tailrec_fact (n : Int) (accum : Int) : Int =
|
||||
if n < 2
|
||||
then accum
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
!yamlscript/v0
|
||||
#!/usr/bin/env ys-0
|
||||
|
||||
defn main(n):
|
||||
say: "$n! = $factorial(n)"
|
||||
|
||||
defn factorial(x):
|
||||
apply *: 2..x
|
||||
|
||||
say: factorial(20)
|
||||
apply *: 2 .. x
|
||||
|
|
|
|||
|
|
@ -1,25 +1,27 @@
|
|||
const stdout = @import("std").io.getStdOut().outStream();
|
||||
|
||||
pub fn factorial(comptime Num: type, n: i8) ?Num {
|
||||
return if (@typeInfo(Num) != .Int)
|
||||
@compileError("factorial called with num-integral type: " ++ @typeName(Num))
|
||||
@compileError("factorial called with non-integral type: " ++ @typeName(Num))
|
||||
else if (n < 0)
|
||||
null
|
||||
else calc: {
|
||||
var i: i8 = 1;
|
||||
var fac: Num = 1;
|
||||
while (i <= n) : (i += 1) {
|
||||
if (@mulWithOverflow(Num, fac, i, &fac))
|
||||
break :calc null;
|
||||
const tmp = @mulWithOverflow(fac, i);
|
||||
if (tmp[1] != 0)
|
||||
break :calc null; // overflow
|
||||
fac = tmp[0];
|
||||
} else break :calc fac;
|
||||
};
|
||||
}
|
||||
|
||||
pub fn main() !void {
|
||||
try stdout.print("-1! = {}\n", .{factorial(i32, -1)});
|
||||
try stdout.print("0! = {}\n", .{factorial(i32, 0)});
|
||||
try stdout.print("5! = {}\n", .{factorial(i32, 5)});
|
||||
try stdout.print("33!(64 bit) = {}\n", .{factorial(i64, 33)}); // not vailid i64 factorial
|
||||
try stdout.print("33! = {}\n", .{factorial(i128, 33)}); // biggest facorial possible
|
||||
try stdout.print("34! = {}\n", .{factorial(i128, 34)}); // will overflow
|
||||
const stdout = @import("std").io.getStdOut().writer();
|
||||
|
||||
try stdout.print("-1! = {?}\n", .{factorial(i32, -1)});
|
||||
try stdout.print("0! = {?}\n", .{factorial(i32, 0)});
|
||||
try stdout.print("5! = {?}\n", .{factorial(i32, 5)});
|
||||
try stdout.print("33!(64 bit) = {?}\n", .{factorial(i64, 33)}); // not valid i64 factorial
|
||||
try stdout.print("33! = {?}\n", .{factorial(i128, 33)}); // biggest i128 factorial possible
|
||||
try stdout.print("34! = {?}\n", .{factorial(i128, 34)}); // will overflow
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue