Conversation
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
| @@ -0,0 +1,32 @@ | |||
| (** Copyright 2025, Tenyaeva Ekaterina *) | |||
There was a problem hiding this comment.
File 'Tenyaeva/tests/qcheck.ml' doesn't have corresponding .mli interface
Tenyaeva/bin/REPL.ml
Outdated
| open Tenyaeva_lib.Ast | ||
|
|
||
| type options = | ||
| { mutable dump_parsetree : bool |
There was a problem hiding this comment.
Using mutable data structures for teaching purposes is usually discouraged. Replace Hashtables by standard tree-like maps or consider Hash-Array Mapped Tries (HAMT). Use mutable references and mutable structure fields only if it is really required. In all places where it is needed indeed, describe in a comment why it is needed there.
Tenyaeva/bin/REPL.ml
Outdated
|
|
||
| type options = | ||
| { mutable dump_parsetree : bool | ||
| ; mutable max_steps : int |
There was a problem hiding this comment.
Using mutable data structures for teaching purposes is usually discouraged. Replace Hashtables by standard tree-like maps or consider Hash-Array Mapped Tries (HAMT). Use mutable references and mutable structure fields only if it is really required. In all places where it is needed indeed, describe in a comment why it is needed there.
Tenyaeva/lib/monad.ml
Outdated
| let get st = st, Ok st | ||
| let put new_st _st = new_st, Ok () | ||
| let fail e st = st, Error e | ||
| let run m st = m st |
There was a problem hiding this comment.
Eta reduction proposed. It's recommended to rewrite 'fun st -> m st' as
'm'
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
| @@ -0,0 +1,30 @@ | |||
| (** Copyright 2025, Tenyaeva Ekaterina *) | |||
There was a problem hiding this comment.
File 'Tenyaeva/lib/monad.ml' doesn't have corresponding .mli interface
| open Tenyaeva_lib.Ast | ||
|
|
||
| type options = | ||
| { mutable dump_parsetree : bool (* changed via command line argument *) |
There was a problem hiding this comment.
Using mutable data structures for teaching purposes is usually discouraged. Replace Hashtables by standard tree-like maps or consider Hash-Array Mapped Tries (HAMT). Use mutable references and mutable structure fields only if it is really required. In all places where it is needed indeed, describe in a comment why it is needed there.
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
Signed-off-by: Tenyaeva Ekaterina <b08lsoai@gmail.com>
|
Документация и тестовое покрытие (98.53%) должны скоро появиться. https://kakadu.github.io/fp25/docs/Tenyaeva https://kakadu.github.io/fp25/cov/Tenyaeva 2026-02-27 22:38 |
| @@ -0,0 +1,30 @@ | |||
| (** Copyright 2025, Tenyaeva Ekaterina *) | |||
There was a problem hiding this comment.
File 'Tenyaeva/lib/monad.ml' doesn't have corresponding .mli interface
|
|
||
| type options = | ||
| { mutable dump_parsetree : bool (* changed via command line argument *) | ||
| ; mutable max_steps : int (* changed via command line argument *) |
There was a problem hiding this comment.
Using mutable data structures for teaching purposes is usually discouraged. Replace Hashtables by standard tree-like maps or consider Hash-Array Mapped Tries (HAMT). Use mutable references and mutable structure fields only if it is really required. In all places where it is needed indeed, describe in a comment why it is needed there.
|
Linter report from 2026-02-27 22:39, for mini language Tenyaeva |
implementation of the miniML interpreter