Plaster
New
List
Login
text
apl
aspx
asterisk
brainfuck
c
c++hdr
c++src
cassandra
ceylon
clojure
clojurescript
cmake
cobol
coffeescript
common-lisp
crystal
csharp
css
cypher-query
cython
d
dart
diff
django
dockerfile
dylan
ebnf
ecl
ecmascript
edn
eiffel
ejs
elm
erb
erlang
ez80
factor
fcl
feature
forth
fortran
fragment
gfm
go
gql
groovy
gss
haml
handlebars-template
haskell
haxe
hive
html
http
httpd-php
httpd-php-open
hxml
ini
java
javascript
json
jsp
jsx
julia
kotlin
latex
less
literate-haskell
lua
mariadb
markdown
mbox
mirc
mscgen
msgenny
mssql
mumps
mysql
n-triples
nesc
nginx-conf
nsis
objectivec
octave
oz
pascal
perl
pgp
pgp-keys
pgp-signature
pgsql
php
pig
plsql
properties
protobuf
puppet
python
q
rpm-changes
rpm-spec
rsrc
ruby
rustsrc
sas
sass
scala
scheme
scss
sieve
slim
smarty
solr
soy
sparql-query
spreadsheet
sql
squirrel
stex
styl
swift
systemverilog
tcl
textile
tiddlywiki
tiki
tlv
tornado
ttcn-asn
ttcn-cfg
turtle
twig
typescript
typescript-jsx
vb
vbscript
velocity
verilog
vertex
vhdl
vue
webidl
xml
xml-dtd
xquery
xu
yaml
z80
default
Visibility:
public
unlisted
private
(defun dim-code (arr dim-num n) "Create the code for a nested list from array contents. ARR = array, DIM-NUM = the selected dimension to bring from the array, and N is the selected index of DIM-NUM. In the case of a 2-Dimensional array (a matrix), DIM-NUM = 0 implies a row, and DIM-NUM = 1 implies a column." (labels ((nested-loop (syms dims code) "Generate nested list code." (if (car syms) (nested-loop (cdr syms) (cdr dims) `(loop :for ,(car syms) :below ,(car dims) :collect ,code)) code)) (remove-nth (seq n) (remove-if (constantly t) seq :start n :count 1))) (let* ((adims (array-dimensions arr)) (asyms (loop :for i :below (length adims) :collect (gensym)))) (nested-loop (remove-nth asyms dim-num) (remove-nth adims dim-num) `(aref ,arr ,@(substitute-if n (constantly t) asyms :start dim-num :count 1))))))