mirror of
https://github.com/samsonjs/lake.git
synced 2026-04-05 10:45:51 +00:00
30 lines
707 B
C
30 lines
707 B
C
/**
|
|
* list.h
|
|
* Lake Scheme
|
|
*
|
|
* Copyright 2011 Sami Samhuri
|
|
* MIT License
|
|
*
|
|
*/
|
|
|
|
#ifndef _LAKE_LIST_H
|
|
#define _LAKE_LIST_H 1
|
|
|
|
#include <stdlib.h>
|
|
#include "lake.h"
|
|
#include "string.h"
|
|
|
|
LakeList *list_make(void);
|
|
LakeList *list_make_with_cap(size_t cap);
|
|
LakeList *list_from_array(size_t n, LakeVal *vals[]);
|
|
LakeInt *list_len(LakeList *list);
|
|
NILP list_grow(LakeList *list);
|
|
NILP list_append(LakeList *list, LakeVal *val);
|
|
NILP list_set(LakeList *list, size_t i, LakeVal *val);
|
|
LakeVal *list_get(LakeList *list, LakeInt *li);
|
|
LakeInt *list_cmp(LakeList *a, LakeList *b);
|
|
LakeSym *list_eq(LakeList *a, LakeList *b);
|
|
LakeStr *list_to_str(LakeList *list);
|
|
char *list_repr(LakeList *list);
|
|
|
|
#endif
|