packages feed

haskell-fsrs-7.0.0: src/FSRS.hs

-- | FSRS-7 — the Free Spaced Repetition Scheduler, version 7.
--
-- FSRS predicts when you are about to forget something and schedules the
-- review for just before that happens. It models a card with two numbers:
--
-- * /stability/, the memory's half-life in days, and
-- * /difficulty/, how hard this particular card is for you, on a 1–10 scale,
--
-- from which it derives /retrievability/, the probability that you can recall
-- the card right now.
--
-- A quick tour:
--
-- @
-- import "FSRS"
--
-- -- Grade a brand-new card 'Good', then grade it again a week later.
-- let p      = 'defaultParameters'
--     first  = 'nextMemoryState' p Nothing 0 'Good'
--     second = 'nextMemoryState' p ('Just' first) 7 'Good'
--
-- -- When should it come back, if we want a 90% chance of recall?
-- 'nextIntervalDays' p 0.9 ('memoryStability' second)
-- @
--
-- For whole-card scheduling — learning steps, due dates, lapses — use
-- "FSRS.Scheduler":
--
-- @
-- let (card', logEntry) = 'reviewCard' 'defaultScheduler' ('newCard' now) 'Good' now
-- @
--
-- The modules underneath are "FSRS.Types" (ratings and memory states),
-- "FSRS.Parameters" (the 35 weights), "FSRS.Algorithm" (the model itself) and
-- "FSRS.Scheduler".
module FSRS
  ( module FSRS.Types
  , module FSRS.Parameters
  , module FSRS.Algorithm
  , module FSRS.Scheduler
  ) where

import FSRS.Algorithm
import FSRS.Parameters
import FSRS.Scheduler
import FSRS.Types