This repository contains an unfinished implementation of a vocabulary training in GNU Guile.

Zelphir Kaltstahl 767dfcc869 fix phrases 2 yıl önce
data 767dfcc869 fix phrases 2 yıl önce
guix-env d6f3a99959 add guile-fslib dependency 3 yıl önce
lib ea9b25c95c update submodule 3 yıl önce
test cb1f2b2513 add vector-update-elements procedure 3 yıl önce
.editorconfig 176294b4b9 add editorconfig 3 yıl önce
.gitignore 203c856cb5 update gitignore 3 yıl önce
.gitmodules 036ed2234d add random utils 3 yıl önce
Makefile 01a03c3675 move data files 3 yıl önce
alist-procs.scm 5bc8068a4d add alist-set 3 yıl önce
bool-utils.scm 834395a259 add default thunk to string->boolean converter 3 yıl önce
command-line.scm 208ed7ba32 comment out debug logs 3 yıl önce
display-utils.scm 9119a6f28b add display and logging modules 3 yıl önce
interact.scm 063a071085 fix immediate application of action 3 yıl önce
iter-utils.scm d374e36e96 add iter-utils 3 yıl önce
json-reader.scm 5eff8dc65d update for new api 3 yıl önce
json-writer.scm 27c9fb6558 implement persisting and reloading vocabulary 3 yıl önce
list-procs.scm cec1f6c818 make search interaction work 3 yıl önce
logging.scm 9119a6f28b add display and logging modules 3 yıl önce
main.scm 27c9fb6558 implement persisting and reloading vocabulary 3 yıl önce
math.scm 1faf1813d4 add math lib and tests 3 yıl önce
model.scm 54b36aa6a5 initial commit 5 yıl önce
print-utils.scm 8f3764c918 add print utils 3 yıl önce
readme.org 3007c16966 update readme 3 yıl önce
search.scm 70f7039531 cleanup debug logs 3 yıl önce
settings.json c075c6c138 fix typo 2 yıl önce
statistics.scm 373c6b08a2 add tag statistics 3 yıl önce
transform.py 54b36aa6a5 initial commit 5 yıl önce
vector-procs.scm cb1f2b2513 add vector-update-elements procedure 3 yıl önce
vocabulary-data.scm c075c6c138 fix typo 2 yıl önce

readme.org

Usage

Run application

First activate the provided GNU Guix environment as follows:

bash guix-env/env.bash

Then run the following command to start the application:

make

Run tests

First activate the provided GNU Guix environment as follows:

bash guix-env/env.bash

Then run the following command to run tests:

make test

TODO To do [0/2]

TODO Save state [0/3]

  • [ ] make it possible to persist vocabulary changes
  • [ ] save search result in extra file, perhaps optionally only indices and otherwise whole entries

TODO Editing while learning [0/1]

  • [ ] switch to a submenu instead of having many choices at once on the learn menu

Notes

Vocabulary structure

The first entry in the vocabulary is considered to be special, as all other entries are assumed to match its structure, meaning, that the program assumes, that they have the same attributes.

The assumed vocabulary structure is quite flexible, allowing for custom attributes to be added, as long as the following requirements are met.

Metadata

The program assumes, that there is an attribute "metadata" in each entry of the vocabulary. Some of the metadata gets built-in special treatment, like for example the learned metadatum. Such metadata is assumed to be in the vocabulary. If it was missing, the program would most likely crash.

id attribute

The program itself adds an "id" attribute to the metadata of each entry for managing it throughout the runtime of the program. For this reason the metadata of an entry must not contain an "id" attribute already.

learned attribute

The "learned" attribute in the metadata of a vocabulary entry is a boolean and is assumed to exist.

TODO Words