New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scan CL spec for easy to implement functions for vari #168

Open
cbaggers opened this Issue Mar 6, 2018 · 2 comments

Comments

Projects
None yet
1 participant
@cbaggers
Owner

cbaggers commented Mar 6, 2018

use tamei as a guide

@cbaggers cbaggers self-assigned this Mar 6, 2018

@cbaggers

This comment has been minimized.

Owner

cbaggers commented Mar 7, 2018

I did a rough scan of the spec. Here's the list (purely based on my gut feeling)

To Add

Easy

symbolp
keywordp
row-major-aref
svref
array-rank
array-row-major-index
array-total-size
adjustable-array-p
array-has-fill-pointer-p
arrayp
bit-vector-p
simple-bit-vector-p
simple-vector-p
vectorp
compiled-function-p
functionp
1+
1-
cis
float (add optional args)
integer-length
signum
conjugate
random-state-p (though just false for now)
complexp
evenp
floatp
integerp
minusp
numberp
oddp
plusp
rationalp
realp
zerop
copy-structure
prog2
dotimes
rem
typecase

Needs a bit of reading

phase
isqrt
logand
logandc1
logandc2
logcount
logeqv
logior
lognand
lognor
lognot
logorc1
logorc2
logtest
logxor
with-accessors
multiple-value-setq
nth-value
scale-float
rotatef
shiftf

Spec clash issues

with-slots (id want this to work on structs)
floor (check api)
fceiling
ffloor
fround
ftruncate
round
truncate
ceiling (check api)

Harder

complement
log (with optional arg)
rational
rationalize
decode-float
float-digits
float-precision
float-radix
float-sign
integer-decode-float
every ;;-|
notany ;; |
notevery ;; |-- impl depends on if we go the sequence route
some ;; |
constantly ;;-|
constantp
coerce
random
make-random-state (could be a seed for some rand func. however cl's random hard on gpu)
do
do*
setf expanders

Crazy Town

copy-seq
make-sequence
subseq
concatenate
elt
map
reduce
reverse
length
search
mismatch
find
find-if
find-if-not
count
count-if
count-if-not
position
position-if
position-if-not
remove
remove-duplicates
remove-if
remove-if-not
substitute
substitute-if
substitute-if-not
delete
delete-duplicates
delete-if
delete-if-not
nsubstitute
nsubstitute-if
nsubstitute-if-not
nreverse
replace
stable-sort
sort
map-into
merge
fill

Will not implement

schar
char
make-string
string
string-capitalize
string-downcase
string-equal
string-left-trim
string-not-equal
string-right-trim
string-trim
string-upcase
string/=
string<
string<=
string=
string>
string>=
simple-string-p
string-greaterp
string-lessp
string-not-greaterp
string-not-lessp
stringp
nstring-capitalize
nstring-downcase
nstring-upcase
name-char
code-char
digit-char
char-code
char-downcase
char-equal
char-int
char-name
char-not-equal
char-upcase
char/=
char<
char<=
char=
char>
char>=
character
upper-case-p
char-greaterp
lower-case-p
char-lessp
both-case-p
char-not-greaterp
char-not-lessp
characterp
alpha-char-p
alphanumericp
digit-char-p
graphic-char-p
standard-char-p
gcd - too slow
lcm - too slow because uses gcd

@cbaggers

This comment has been minimized.

Owner

cbaggers commented Mar 7, 2018

definitely not adding strings or chars

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment