Merge pull request #4643 from haskellcamargo/master

Fixed errors on type signature for Prelude LS
This commit is contained in:
Masahiro Wakame
2015-07-13 07:11:39 +09:00
3 changed files with 213 additions and 140 deletions
+10 -10
View File
@@ -1,6 +1,6 @@
// Type definitions for FullCalendar 1.6.1
// Project: http://arshaw.com/fullcalendar/
// Definitions by: Neil Stalker <https://github.com/nestalk>
// Definitions by: Neil Stalker <https://github.com/nestalk>, Marcelo Camargo <https://github.com/hasellcamargo>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path="../jquery/jquery.d.ts"/>
@@ -99,7 +99,7 @@ declare module FullCalendar {
selectHelper?: any; // Boolean/Function
unselectAuto?: boolean;
unselectCancel?: string;
select?: (startDate: Date, endDate: Date, allDay: boolean, jsEvent: MouseEvent, view: View) => void;
select?: (startDate: Date | string, endDate: Date | string, allDay: boolean, jsEvent: MouseEvent, view: View) => void;
unselect?: (view: View, jsEvent: Event) => void;
// Event Data - http://arshaw.com/fullcalendar/docs/event_data/
@@ -109,7 +109,7 @@ declare module FullCalendar {
*
* - EventObject[]
* - string (JSON feed)
* - (start: Date, end: Date, callback: {(events: EventObject[]) => void;}) => void;
* - (start: Date | string, end: Date | string, callback: {(events: EventObject[]) => void;}) => void;
*/
events?: any;
@@ -119,7 +119,7 @@ declare module FullCalendar {
* - EventSource
* - EventObject[]
* - string (JSON feed)
* - (start: Date, end: Date, callback: {(events: EventObject[]) => void;}) => void;
* - (start: Date | string, end: Date | string, callback: {(events: EventObject[]) => void;}) => void;
*/
eventSources?: any[];
@@ -164,8 +164,8 @@ declare module FullCalendar {
export interface View {
name: string;
title: string;
start: Date;
end: Date;
start: Date | string;
end: Date | string;
visStart: Date;
visEnd: Date;
}
@@ -214,8 +214,8 @@ declare module FullCalendar {
id?: any // String/number
title: string;
allDay?: boolean;
start: Date;
end?: Date;
start: Date | string;
end?: Date | string;
url?: string;
className?: any; // string/Array<string>
editable?: boolean;
@@ -233,7 +233,7 @@ declare module FullCalendar {
*
* - EventObject[]
* - string (JSON feed)
* - (start: Date, end: Date, callback: {(events: EventObject[]) => void;}) => void;
* - (start: Date | string, end: Date | string, callback: {(events: EventObject[]) => void;}) => void;
*/
events?: any;
@@ -312,7 +312,7 @@ interface JQuery {
/**
* Moves the calendar to an arbitrary date.
*/
fullCalendar(method: 'gotoDate', date: Date): void;
fullCalendar(method: 'gotoDate', date: Date | string): void;
/**
* Moves the calendar forward/backward an arbitrary amount of time.
+188 -117
View File
@@ -1,104 +1,137 @@
/// <reference path="./prelude-ls.d.ts" />
import prelude = require("prelude-ls");
prelude.id(5); //=> 5
prelude.id({}); //=> {}
var five: number = prelude.id(5); //=> 5
var emptyObj: Object = prelude.id({}); //=> {}
prelude.isType("Undefined", void 8); //=> true
var expectBool: boolean = prelude.isType("Undefined", void 8); //=> true
prelude.isType("Boolean", true); //=> true
prelude.isType("Number", 1); //=> true
prelude.isType("String", "hi"); //=> true
prelude.isType("Object", {}); //=> true
prelude.isType("Array", []); //=> true
prelude.replicate(4, 3); //=> [3, 3, 3, 3]
prelude.replicate(4, "a"); //=> ["a", "a", "a", "a"]
var numberArray: Array<number> = prelude.replicate(4, 3); //=> [3, 3, 3, 3]
var strArray: Array<string> =
prelude.replicate(4, "a"); //=> ["a", "a", "a", "a"]
prelude.replicate(0, "a"); //=> []
// List
prelude.each(x => x.push("boom"), [["a"], ["b"], ["c"]]);
var eachRes: Array<Array<string>> =
prelude.each(x => x.push("boom"), [["a"], ["b"], ["c"]]);
//=> [["a", "boom"], ["b", "boom"], ["c", "boom"]]
prelude.map(x => x * 2, [1, 2, 3, 4, 5]); //=> [2, 4, 6, 8, 10]
var mapRes: Array<string> =
prelude.map(x => x.toString(), [1, 2, 3, 4, 5]) //=> ["1", "2", "3", "4", "5"]
prelude.map(x => x.toUpperCase(), ["ha", "ma"]); //=> ["HA", "MA"]
prelude.map(x => x.num, [{num: 3}, {num: 1}]); //=> [3, 1]
prelude.compact([0, 1, false, true, "", "ha"]) //=> [1, true, "ha"]
var compactRes: Array<any> =
prelude.compact([0, 1, false, true, "", "ha"]) //=> [1, true, "ha"]
prelude.filter(x => x < 3, [1, 2, 3, 4, 5]); //=> [1, 2]
var filterRes: Array<number> =
prelude.filter(x => x < 3, [1, 2, 3, 4, 5]); //=> [1, 2]
prelude.filter(prelude.even, [3, 4, 0]); //=> [4, 0]
prelude.reject(prelude.odd, [1, 2, 3, 4, 5]); //=> [2, 4]
var rejectRes: Array<number> =
prelude.reject(prelude.odd, [1, 2, 3, 4, 5]); //=> [2, 4]
prelude.partition(x => x > 60, [49, 58, 76, 43, 88, 77, 90]); //=> [[76, 88, 77, 90], [49, 58, 43]]
var partitionRes: Array<Array<number>> =
prelude.partition(x => x > 60, [49, 58, 76, 43, 88, 77, 90]);
//=> [[76, 88, 77, 90], [49, 58, 43]]
prelude.find(prelude.odd, [2, 4, 6, 7, 8, 9, 10]); //=> 7
var findRes: number = prelude.find(prelude.odd, [2, 4, 6, 7, 8, 9, 10]); //=> 7
prelude.head([1, 2, 3, 4, 5]); //=> 1
var headRes: number = prelude.head([1, 2, 3, 4, 5]); //=> 1
prelude.tail([1, 2, 3, 4, 5]); //=> [2, 3, 4, 5]
var tailRes: Array<number> = prelude.tail([1, 2, 3, 4, 5]); //=> [2, 3, 4, 5]
prelude.last([1, 2, 3, 4, 5]); //=> 5
var lastRes: number = prelude.last([1, 2, 3, 4, 5]); //=> 5
prelude.initial([1, 2, 3, 4, 5]); //=> [1, 2, 3, 4]
var initialRes: Array<number> =
prelude.initial([1, 2, 3, 4, 5]); //=> [1, 2, 3, 4]
prelude.empty([]); //=> true
var emptyRes: boolean = prelude.empty([]); //=> true
prelude.reverse([1, 2, 3]); //=> [3, 2, 1]
var reverseRes: Array<number> = prelude.reverse([1, 2, 3]); //=> [3, 2, 1]
prelude.unique([1, 1, 1, 3, 3, 6, 7, 8]); //=> [1, 3, 6, 7, 8]
var uniqueRes: Array<number> =
prelude.unique([1, 1, 1, 3, 3, 6, 7, 8]); //=> [1, 3, 6, 7, 8]
prelude.uniqueBy(x => x.length, ["and", "here", "are", "some", "words"]); //=> ["and", "here", "words"]
var uniqueByRes: Array<string> =
prelude.uniqueBy(x => x.length, ["and", "here", "are", "some", "words"]); //=> ["and", "here", "words"]
prelude.fold(x => y => x + y, 0, [1, 2, 3, 4, 5]); //=> 15
var product = prelude.fold<number, number>(x => y => x * y, 1);
var foldRes: number =
prelude.fold(x => y => x + y, 0, [1, 2, 3, 4, 5]); //=> 15
prelude.fold1(x => y => x + y, [1, 2, 3]); //=> 6
var fold1Res: number =
prelude.fold1(x => y => x + y, [1, 2, 3]); //=> 6
prelude.foldr(x => y => x - y, 9, [1, 2, 3, 4]); //=> 7
prelude.foldr(x => y => x + y, "e", ["a", "b", "c", "d"]); //=> "abcde"
var foldrRes: number =
prelude.foldr(x => y => x - y, 9, [1, 2, 3, 4]); //=> 7
prelude.foldr1(x => y => x - y, [1, 2, 3, 4, 9]); //=> 7
var foldrStrRes: string =
prelude.foldr(x => y => x + y, "e", ["a", "b", "c", "d"]); //=> "abcde"
prelude.unfoldr(x => x === 0 ? null : [x, x - 1], 10);
//=> [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
var foldr1Res: number =
prelude.foldr1(x => y => x - y, [1, 2, 3, 4, 9]); //=> 7
prelude.concat([[1], [2, 3], [4]]); //=> [1, 2, 3, 4]
var unfoldrRes: Array<number> =
prelude.unfoldr(x => x === 0 ? null : [x, x - 1], 10);
//=> [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
prelude.concatMap(x => ["hoge", x, x + 2], [1, 2, 3]); //=> ["hoge", 1, 3, "hoge", 2, 4, "hoge", 3, 5]
var concatRes: Array<number> =
prelude.concat([[1], [2, 3], [4]]); //=> [1, 2, 3, 4]
prelude.flatten([1, [[2], 3], [4, [[5]]]]); //=> [1, 2, 3, 4, 5]
var concatMapRes: Array<any> =
prelude.concatMap(x => ["hoge", x, x + 2], [1, 2, 3]);
//=> ["hoge", 1, 3, "hoge", 2, 4, "hoge", 3, 5]
prelude.difference([1, 2, 3], [1]); //=> [2, 3]
var flattenRes: Array<number> =
prelude.flatten([1, [[2], 3], [4, [[5]]]]); //=> [1, 2, 3, 4, 5]
var differenceRes: Array<number> =
prelude.difference([1, 2, 3], [1]); //=> [2, 3]
prelude.difference([1, 2, 3, 4, 5], [5, 2, 10], [9]); //=> [1, 3, 4]
prelude.intersection([2, 3], [9, 8], [12, 1], [99]); //=> []
prelude.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1], [-1, 0, 1, 2]); //=> [1, 2]
prelude.intersection([1, 2, 3], [2, 1, 3], [3, 1, 2]); //=> [1, 2, 3]
prelude.intersection([2, 3], [9, 8], [12, 1], [99]); //=> []
var intersectionRes: Array<number> =
prelude.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1], [-1, 0, 1, 2]);
//=> [1, 2]
prelude.intersection([1, 2, 3], [2, 1, 3], [3, 1, 2]); //=> [1, 2, 3]
prelude.union([1, 5, 7], [3, 5], []); //=> [1, 5, 7, 3]
var unionRes: Array<number> =
prelude.union([1, 5, 7], [3, 5], []); //=> [1, 5, 7, 3]
prelude.countBy(prelude.floor, [4.2, 6.1, 6.4]); //=> {4: 1, 6: 2}
var countByRes: Object = prelude.countBy(prelude.floor, [4.2, 6.1, 6.4]);
//=> {4: 1, 6: 2}
prelude.countBy(x => x.length, ["one", "two", "three"]); //=> {3: 2, 5: 1}
prelude.groupBy(prelude.floor, [4.2, 6.1, 6.4]); //=> {4: [4.2], 6: [6.1, 6.4]}
prelude.groupBy(x => x.length, ["one", "two", "three"]); //=> {3: ["one", "two"], 5: ["three"]}
var groupByRes: Object = prelude.groupBy(prelude.floor, [4.2, 6.1, 6.4]);
//=> {4: [4.2], 6: [6.1, 6.4]}
prelude.groupBy(x => x.length, ["one", "two", "three"]);
//=> {3: ["one", "two"], 5: ["three"]}
prelude.andList([true, 2 + 2 == 4]); //=> true
var andListRes: boolean = prelude.andList([true, 2 + 2 == 4]); //=> true
prelude.andList([true, true, false]); //=> false
prelude.andList([]); //=> true
prelude.orList([false, false, true, false]); //=> true
var orListRes: boolean = prelude.orList([false, false, true, false]); //=> true
prelude.orList([]); //=> false
prelude.any(prelude.even, [3, 5, 7, 8, 9]); //=> true
var anyRes: boolean = prelude.any(prelude.even, [3, 5, 7, 8, 9]); //=> true
prelude.any(prelude.even, []); //=> false
prelude.all(prelude.isType("String"), ["ha", "ma", "la"]); //=> true
var allRes: boolean = prelude.all(prelude.isType("String"), ["ha", "ma", "la"]);
//=> true
prelude.all(prelude.isType("String"), []); //=> true
prelude.sort([3, 1, 5, 2, 4, 6]); //=> [1, 2, 3, 4, 5, 6]
var sortRes: Array<number> = prelude.sort([3, 1, 5, 2, 4, 6]);
//=> [1, 2, 3, 4, 5, 6]
var f = (x: string) => (y: string) =>
x.length > y.length ?
@@ -107,11 +140,18 @@ var f = (x: string) => (y: string) =>
-1
:
0;
prelude.sortWith(f, ["three", "one", "two"]); //=> ["one", "two", "three"]
prelude.sortBy(x => x.length, ["there", "hey", "a", "ha"]); //=> ["a", "ha", "hey", "there"]
var sortWithRes: Array<string> = prelude.sortWith(f, ["three", "one", "two"]);
//=> ["one", "two", "three"]
var table = [{
var sortByRes: Array<string> =
prelude.sortBy(x => x.length, ["there", "hey", "a", "ha"]);
//=> ["a", "ha", "hey", "there"]
var table: Array<{
id: number;
name: string;
}> = [{
id: 1,
name: "george"
}, {
@@ -122,82 +162,107 @@ var table = [{
name: "donald"
}];
prelude.sortBy(x => x.name, table);
//=> [{"id": 3, "name": "donald"}, {"id": 1, "name": "george"}, {"id": 2, "name": "mike"}]
//=> [{"id": 3, "name": "donald"},
// {"id": 1, "name": "george"},
// {"id": 2, "name": "mike"}]
prelude.sum([1, 2, 3, 4, 5]); //=> 15
var sumRes: number = prelude.sum([1, 2, 3, 4, 5]); //=> 15
prelude.sum([]); //=> 0
prelude.product([1, 2, 3]); //=> 6
var productRes: number = prelude.product([1, 2, 3]); //=> 6
prelude.product([]); //=> 1
prelude.mean([1, 2, 3, 4, 5]); //=> 3
var meanRes: number = prelude.mean([1, 2, 3, 4, 5]); //=> 3
prelude.maximum([4, 1, 9, 3]); //=> 9
var maximumRes: number = prelude.maximum([4, 1, 9, 3]); //=> 9
prelude.minimum(["c", "e", "a", "d", "b"]); //=> "a"
var minimumRes: string = prelude.minimum(["c", "e", "a", "d", "b"]); //=> "a"
prelude.maximumBy(x => x.length, ["hi", "there", "I", "am", "looooong"]); //=> "looooong"
var maximumByRes: string =
prelude.maximumBy(x => x.length, ["hi", "there", "I", "am", "looooong"]);
//=> "looooong"
prelude.maximumBy(x => x.length, ["hi", "there", "I", "am", "looooong"]); //=> "looooong"
var scanRes: Array<number> = prelude.scan(x => y => x + y, 0, [1, 2, 3]);
//=> [0, 1, 3, 6]
prelude.scan(x => y => x + y, 0, [1, 2, 3]); //=> [0, 1, 3, 6]
var scan1Res: Array<number> = prelude.scan1(x => y => x + y, [1, 2, 3]);
//=> [1, 3, 6]
prelude.scan1(x => y => x + y, [1, 2, 3]); //=> [1, 3, 6]
var scanrRes: Array<number> = prelude.scanr(x => y => x + y, 0, [1, 2, 3]);
//=> [6, 5, 3, 0]
prelude.scanr(x => y => x + y, 0, [1, 2, 3]); //=> [6, 5, 3, 0]
var scanr1Res: Array<number> = prelude.scanr1(x => y => x + y, [1, 2, 3]);
//=> [6, 5, 3]
prelude.scanr1(x => y => x + y, [1, 2, 3]); //=> [6, 5, 3]
var sliceRes: Array<number> = prelude.slice(2, 4, [1, 2, 3, 4, 5]); //=> [3, 4]
prelude.slice(2, 4, [1, 2, 3, 4, 5]); //=> [3, 4]
var takeRes: Array<number> = prelude.take(2, [1, 2, 3, 4, 5]); //=> [1, 2]
prelude.take(2, [1, 2, 3, 4, 5]); //=> [1, 2]
var dropRes: Array<number> = prelude.drop(2, [1, 2, 3, 4, 5]); //=> [3, 4, 5]
prelude.drop(2, [1, 2, 3, 4, 5]); //=> [3, 4, 5]
var splitAtRes: Array<Array<number>> =
prelude.splitAt(2, [1, 2, 3, 4, 5]); //=> [[1, 2], [3, 4, 5]]
prelude.splitAt(2, [1, 2, 3, 4, 5]); //=> [[1, 2], [3, 4, 5]]
var takeWhileRes: Array<number> =
prelude.takeWhile(prelude.odd, [1, 3, 5, 4, 8, 7, 9]); //=> [1, 3, 5]
prelude.takeWhile(prelude.odd, [1, 3, 5, 4, 8, 7, 9]); //=> [1, 3, 5]
prelude.dropWhile(prelude.even, [2, 4, 5, 6]); //=> [5, 6]
var dropWhileRes: Array<number> =
prelude.dropWhile(prelude.even, [2, 4, 5, 6]); //=> [5, 6]
var spanRes: Array<Array<number>> =
prelude.span(prelude.even, [2, 4, 5, 6]); //=> [[2, 4], [5, 6]]
prelude.breakList(x => x == 3, [1, 2, 3, 4, 5]); //=> [[1, 2], [3, 4, 5]]
var breakListRes: Array<Array<number>> =
prelude.breakList(x => x == 3, [1, 2, 3, 4, 5]); //=> [[1, 2], [3, 4, 5]]
prelude.zip([1, 2, 3], [4, 5, 6]); //=> [[1, 4], [2, 5], [3, 6]]
var zipRes: Array<Array<number>> = prelude.zip([1, 2, 3], [4, 5, 6]);
//=> [[1, 4], [2, 5], [3, 6]]
prelude.zipWith(x => y => x + y, [1, 2, 3], [4, 5, 6]); //=> [5, 7, 9]
var zipWithRes: Array<number> =
prelude.zipWith(x => y => x + y, [1, 2, 3], [4, 5, 6]); //=> [5, 7, 9]
var zipAllRes: Array<Array<number>> =
prelude.zipAll([1, 2, 3], [4, 5, 6], [7, 8, 9]); //=> [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
var zipAllWithRes: Array<number> =
prelude.zipAllWith((a, b, c) => a + b + c, [1, 2, 3], [3, 2, 1], [1, 1, 1]); //=> [5, 5, 5]
prelude.at(2, [1, 2, 3, 4]); //=> 3
var atRes: number = prelude.at(2, [1, 2, 3, 4]); //=> 3
prelude.at(-3, [1, 2, 3, 4]); //=> 2
prelude.elemIndex("a", ["c", "a", "b", "a"]); //=> 1
var elemIndexRes: number = prelude.elemIndex("a", ["c", "a", "b", "a"]); //=> 1
prelude.elemIndices("a", ["c", "a", "b", "a"]); //=> [1, 3]
var elemIndicesRes: Array<number> =
prelude.elemIndices("a", ["c", "a", "b", "a"]); //=> [1, 3]
prelude.findIndex(prelude.even, [1, 2, 3, 4]); //=> 1
var findIndexRes: number = prelude.findIndex(prelude.even, [1, 2, 3, 4]); //=> 1
prelude.findIndices(prelude.even, [1, 2, 3, 4]); //=> [1, 3]
var findIndicesRes: Array<number> =
prelude.findIndices(prelude.even, [1, 2, 3, 4]); //=> [1, 3]
// Obj
prelude.keys({a: 2, b: 3, c: 9}); //=> ["a", "b", "c"]
var keysRes: Array<string> = prelude.keys({a: 2, b: 3, c: 9});
//=> ["a", "b", "c"]
prelude.values({a: 2, b: 3, c: 9}); //=> [2, 3, 9]
var valuesRes: Array<number> = prelude.values({a: 2, b: 3, c: 9});
//=> [2, 3, 9]
prelude.pairsToObj<string | number>([["a", "b"], ["c", "d"], ["e", 1]]); //=> {a: "b", c: "d", e: 1}
var pairsToObjRes: Object =
prelude.pairsToObj<string | number>([["a", "b"], ["c", "d"], ["e", 1]]); //=> {a: "b", c: "d", e: 1}
prelude.objToPairs({a: "b", c: "d", e: 1}); //=> [["a", "b"], ["c", "d"], ["e", 1]]
var objToPairsRes: Array<Array<string | number>> =
prelude.objToPairs({a: "b", c: "d", e: 1});
//=> [["a", "b"], ["c", "d"], ["e", 1]]
prelude.listsToObj(["a", "b", "c"], [1, 2, 3]); //=> {a: 1, b: 2, c: 3}
var listsToObjRes: Object =
prelude.listsToObj(["a", "b", "c"], [1, 2, 3]); //=> {a: 1, b: 2, c: 3}
prelude.objToLists({a: 1, b: 2, c: 3}); //=> [["a", "b", "c"], [1, 2, 3]]
var objToListsRes =
prelude.objToLists({a: 1, b: 2, c: 3});
//=> [["a", "b", "c"], [1, 2, 3]]
prelude.Obj.empty({}); //=> true
var objEmptyRes: boolean = prelude.Obj.empty({}); //=> true
var count = 4;
prelude.Obj.each(x => count += x, {a: 1, b: 2, c: 3});
@@ -272,94 +337,100 @@ prelude.Str.breakStr(x => x === "h", "mmmmmhmm"); //=> ["mmmmm", "hmm"]
// Func
prelude.apply((x, y) => x + y, [2, 3]); //=> 5
var applyRes: number = prelude.apply((x, y) => x + y, [2, 3]); //=> 5
var add = (x: number, y: number) => x + y;
var addCurried = prelude.curry(add);
var addFour = addCurried(4);
addFour(2); //=> 6
var invertedPower = prelude.flip<number, number, number>(x => y => Math.pow(x, y));
invertedPower(2)(3); //=> 9
var flipRes: (x: number) => (y: number) => number
= prelude.flip<number, number, number>(x => y => Math.pow(x, y));
prelude.fix((fib: (n: number) => number) => (n: number) => n <= 1 ? 1 : fib(n - 1) + fib(n - 2))(9); //=> 55
var fixRes: number = prelude.fix(
(fib: (n: number) => number) => (n: number) =>
n <= 1
? 1
: fib(n - 1) + fib(n - 2)
)(9); //=> 55
var sameLength = prelude.over<string, number, boolean>((x, y) => x == y, x => x.length);
var sameLength: (x: string, y: string) => boolean
= prelude.over<string, number, boolean>((x, y) => x == y, x => x.length);
sameLength('hi', 'me'); //=> true
sameLength('one', 'boom'); //=> false
// Num
prelude.max(3, 1); //=> 3
prelude.max("a", "c"); //=> "c"
var maxRes: string = prelude.max("a", "c"); //=> "c"
prelude.min(3, 1); //=> 1
var minRes: number = prelude.min(3, 1); //=> 1
prelude.min("a", "c"); //=> "a"
prelude.negate(3); //=> -3
var negateRes: number = prelude.negate(3); //=> -3
prelude.negate(-2); //=> 2
prelude.abs(-2); //=> 2
var absRes: number = prelude.abs(-2); //=> 2
prelude.abs(2); //=> 2
prelude.signum(-5); //=> -1
var signumRes: number = prelude.signum(-5); //=> -1
prelude.signum(0); //=> 0
prelude.signum(9); //=> 1
prelude.quot(-20, 3); //=> -6
var quotRes: number = prelude.quot(-20, 3); //=> -6
prelude.rem(-20, 3); //=> -2
var remRes: number = prelude.rem(-20, 3); //=> -2
prelude.div(-20, 3); //=> -7
var divRes: number = prelude.div(-20, 3); //=> -7
prelude.mod(-20, 3); //=> 1
var modRes: number = prelude.mod(-20, 3); //=> 1
prelude.recip(4); //=> 0.25
var recipRes: number = prelude.recip(4); //=> 0.25
prelude.pi; //=> 3.141592653589793
var piRes: number = prelude.pi; //=> 3.141592653589793
prelude.tau; //=> 6.283185307179586
var tauRes: number = prelude.tau; //=> 6.283185307179586
prelude.exp(1); //=> 2.718281828459045
var expRes: number = prelude.exp(1); //=> 2.718281828459045
prelude.sqrt(4); //=> 2
var sqrtRes: number = prelude.sqrt(4); //=> 2
prelude.ln(10); //=> 2.302585092994046
var lnRes: number = prelude.ln(10); //=> 2.302585092994046
prelude.pow(-2, 2); //=> 4
var powRes: number = prelude.pow(-2, 2); //=> 4
prelude.sin(prelude.pi / 2); //=> 1
var sinRes: number = prelude.sin(prelude.pi / 2); //=> 1
prelude.cos(prelude.pi); //=> -1
var cosRes: number = prelude.cos(prelude.pi); //=> -1
prelude.tan(prelude.pi / 4); //=> 1
var aTanRes: number = prelude.tan(prelude.pi / 4); //=> 1
prelude.asin(0); //=> 0
var asinRes: number = prelude.asin(0); //=> 0
prelude.acos(1); //=> 0
var acosRes: number = prelude.acos(1); //=> 0
prelude.atan(0); //=> 0
prelude.atan2(1, 0); //=> 1.5707963267948966
var atanRes: number = prelude.atan2(1, 0); //=> 1.5707963267948966
prelude.truncate(-1.5); //=> -1
var truncateRes: number = prelude.truncate(-1.5); //=> -1
prelude.truncate(1.5); //=> 1
prelude.round(0.6); //=> 1
var roundRes: number = prelude.round(0.6); //=> 1
prelude.round(0.5); //=> 1
prelude.round(0.4); //=> 0
prelude.ceiling(0.1); //=> 1
var ceilingRes: number = prelude.ceiling(0.1); //=> 1
prelude.floor(0.9); //=> 0
var floorRes: number = prelude.floor(0.9); //=> 0
prelude.isItNaN(prelude.sqrt(-1)); //=> true
var isItNanRes: boolean = prelude.isItNaN(prelude.sqrt(-1)); //=> true
prelude.even(4); //=> true
var evenRes: boolean = prelude.even(4); //=> true
prelude.even(0); //=> true
prelude.odd(3); //=> true
var oddRes: boolean = prelude.odd(3); //=> true
prelude.gcd(12, 18); //=> 6
var gcdRes: number = prelude.gcd(12, 18); //=> 6
prelude.lcm(12, 18); //=> 36
var lcmRes: number = prelude.lcm(12, 18); //=> 36
+15 -13
View File
@@ -3,6 +3,8 @@
// Definitions by: Aya Morisawa <https://github.com/AyaMorisawa>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
// Change [0]: 2015/06/14 - Marcelo Camargo <https://github.com/haskellcamargo>
declare module "prelude-ls" {
module PreludeLS {
export function id<A>(x: A): A;
@@ -14,8 +16,8 @@ declare module "prelude-ls" {
// List
export function each<A>(f: (x: A) => void): (xs: A[]) => void;
export function each<A>(f: (x: A) => void, xs: A[]): void;
export function each<A>(f: (x: A) => void): (xs: A[]) => A[];
export function each<A>(f: (x: A) => void, xs: A[]): A[];
export function map<A, B>(f: (x: A) => B): (xs: A[]) => B[];
export function map<A, B>(f: (x: A) => B, xs: A[]): B[];
export function compact<A>(xs: A[]): A[];
@@ -25,11 +27,11 @@ declare module "prelude-ls" {
export function reject<A>(f: (x: A) => boolean, xs: A[]): A[];
export function partition<A>(f: (x: A) => Boolean): (xs: A[]) => [A[], A[]];
export function partition<A>(f: (x: A) => Boolean, xs: A[]): [A[], A[]];
export function find<A>(f: (x: A) => Boolean): (xs: A[]) => (A | void);
export function find<A>(f: (x: A) => Boolean, xs: A[]): (A | void);
export function head<A>(xs: A[]): (A | void);
export function find<A>(f: (x: A) => Boolean): (xs: A[]) => A;
export function find<A>(f: (x: A) => Boolean, xs: A[]): A;
export function head<A>(xs: A[]): A;
export function tail<A>(xs: A[]): A[];
export function last<A>(xs: A[]): (A | void);
export function last<A>(xs: A[]): A;
export function initial<A>(xs: A[]): A[];
export function empty<A>(xs: A[]): boolean;
export function reverse<A>(xs: A[]): A[];
@@ -58,8 +60,8 @@ declare module "prelude-ls" {
export function concatMap<A, B>(f: (x: A) => B[], xs: A[]): B[];
export function flatten(xs: any[]): any[];
export function difference<A>(...xss: A[][]): A[];
export function intersection<A>(...xss: A[]): A[];
export function union<A>(...xss: A[]): A[];
export function intersection<A>(...xss: A[][]): A[];
export function union<A>(...xss: A[][]): A[];
export function countBy<A, B>(f: (x: A) => B): (xs: A[]) => any;
export function countBy<A, B>(f: (x: A) => B, xs: A[]): any;
export function groupBy<A, B>(f: (x: A) => B): (xs: A[]) => any;
@@ -73,11 +75,11 @@ declare module "prelude-ls" {
export function sort<A>(xs: A[]): A[];
export function sortWith<A>(f: (x: A) => (y: A) => number): (xs: A[]) => A[];
export function sortWith<A>(f: (x: A) => (y: A) => number, xs: A[]): A[];
export function sortBy<A, B>(f: (x: A) => B): (xs: A[]) => A;
export function sortBy<A, B>(f: (x: A) => B, xs: A[]): A;
export function sum(xs: number[]): number[];
export function product(xs: number[]): number[];
export function mean(xs: number[]): number[];
export function sortBy<A, B>(f: (x: A) => B): (xs: A[]) => A[];
export function sortBy<A, B>(f: (x: A) => B, xs: A[]): A[];
export function sum(xs: number[]): number;
export function product(xs: number[]): number;
export function mean(xs: number[]): number;
export function maximum<A>(xs: A[]): A;
export function minimum<A>(xs: A[]): A;
export function maximumBy<A, B>(f: (x: A) => B): (xs: A[]) => A;