Skip to content

Commit 46e31e0

Browse files
Initial function definitions
1 parent 41d5ef7 commit 46e31e0

File tree

6 files changed

+1373
-0
lines changed

6 files changed

+1373
-0
lines changed

packages.dhall

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
{-
2+
Welcome to your new Dhall package-set!
3+
4+
Below are instructions for how to edit this file for most use
5+
cases, so that you don't need to know Dhall to use it.
6+
7+
## Use Cases
8+
9+
Most will want to do one or both of these options:
10+
1. Override/Patch a package's dependency
11+
2. Add a package not already in the default package set
12+
13+
This file will continue to work whether you use one or both options.
14+
Instructions for each option are explained below.
15+
16+
### Overriding/Patching a package
17+
18+
Purpose:
19+
- Change a package's dependency to a newer/older release than the
20+
default package set's release
21+
- Use your own modified version of some dependency that may
22+
include new API, changed API, removed API by
23+
using your custom git repo of the library rather than
24+
the package set's repo
25+
26+
Syntax:
27+
where `entityName` is one of the following:
28+
- dependencies
29+
- repo
30+
- version
31+
-------------------------------
32+
let upstream = --
33+
in upstream
34+
with packageName.entityName = "new value"
35+
-------------------------------
36+
37+
Example:
38+
-------------------------------
39+
let upstream = --
40+
in upstream
41+
with halogen.version = "master"
42+
with halogen.repo = "https://example.com/path/to/git/repo.git"
43+
44+
with halogen-vdom.version = "v4.0.0"
45+
with halogen-vdom.dependencies = [ "extra-dependency" ] # halogen-vdom.dependencies
46+
-------------------------------
47+
48+
### Additions
49+
50+
Purpose:
51+
- Add packages that aren't already included in the default package set
52+
53+
Syntax:
54+
where `<version>` is:
55+
- a tag (i.e. "v4.0.0")
56+
- a branch (i.e. "master")
57+
- commit hash (i.e. "701f3e44aafb1a6459281714858fadf2c4c2a977")
58+
-------------------------------
59+
let upstream = --
60+
in upstream
61+
with new-package-name =
62+
{ dependencies =
63+
[ "dependency1"
64+
, "dependency2"
65+
]
66+
, repo =
67+
"https://example.com/path/to/git/repo.git"
68+
, version =
69+
"<version>"
70+
}
71+
-------------------------------
72+
73+
Example:
74+
-------------------------------
75+
let upstream = --
76+
in upstream
77+
with benchotron =
78+
{ dependencies =
79+
[ "arrays"
80+
, "exists"
81+
, "profunctor"
82+
, "strings"
83+
, "quickcheck"
84+
, "lcg"
85+
, "transformers"
86+
, "foldable-traversable"
87+
, "exceptions"
88+
, "node-fs"
89+
, "node-buffer"
90+
, "node-readline"
91+
, "datetime"
92+
, "now"
93+
]
94+
, repo =
95+
"https://github.com/hdgarrood/purescript-benchotron.git"
96+
, version =
97+
"v7.0.0"
98+
}
99+
-------------------------------
100+
-}
101+
let upstream =
102+
https://github.com/purescript/package-sets/releases/download/psc-0.15.4-20220921/packages.dhall
103+
sha256:169bd823a71ae033eaf4f77776e184f12c656163feae14e7f649a48932ca6ac0
104+
105+
in upstream

spago.dhall

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{ name = "atleast"
2+
, dependencies =
3+
[ "arrays"
4+
, "effect"
5+
, "enums"
6+
, "fast-vect"
7+
, "foldable-traversable"
8+
, "maybe"
9+
, "partial"
10+
, "prelude"
11+
, "quickcheck"
12+
, "unsafe-coerce"
13+
]
14+
, packages = ./packages.dhall
15+
, sources = [ "src/**/*.purs", "test/**/*.purs" ]
16+
}

src/Data/Array/AtLeast.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
export const rawIndex = function(i) {
2+
return function(xs) {
3+
return xs[i];
4+
}
5+
}
6+
7+
export const selfZipWithImpl = function (offset) {
8+
return function (operator) {
9+
return function(xs) {
10+
let xsLen = xs.length;
11+
let ysLen = xsLen - offset;
12+
let ys = new Array(ysLen);
13+
for (let i = 0; i < ysLen; i++) {
14+
ys[i] = operator(xs[i])(xs[i + offset]);
15+
}
16+
return ys;
17+
}
18+
}
19+
}
20+
21+
export const foldr1Impl = function (f) {
22+
return function (xs) {
23+
let len = xs.length;
24+
let acc = xs[len - 1];
25+
for (let i = len - 2; i >= 0; i--) {
26+
acc = f(xs[i])(acc);
27+
}
28+
return acc;
29+
}
30+
}
31+
32+
export const foldl1Impl = function (f) {
33+
return function (xs) {
34+
let acc = xs[0];
35+
let len = xs.length;
36+
for (let i = 1; i < len; i++) {
37+
acc = f(acc)(xs[i]);
38+
}
39+
return acc;
40+
}
41+
}

0 commit comments

Comments
 (0)