From 8a593e1eb5efa1e61a7d25e1a01d1537b5a23b69 Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Mon, 22 May 2023 21:12:29 -0400 Subject: [PATCH] step: small refactor. --- jit_bayes | Bin 159192 -> 159048 bytes jit_bayes.nim | 41 +++++++++++++++++++++++------------------ 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/jit_bayes b/jit_bayes index e0db881715d758973a6069f470c207c099b55235..6ee204a10aa6a7c4bc47d81906403bb9f8ab7da3 100755 GIT binary patch delta 20893 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 delta 20222 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 diff --git a/jit_bayes.nim b/jit_bayes.nim index 8097ce9..8cce7f6 100644 --- a/jit_bayes.nim +++ b/jit_bayes.nim @@ -1,10 +1,22 @@ import strutils import sequtils -import bigints # type: BigInt - -# let x = initBigInt("810896098877923596128062174904361421866219158") let file_path = "./data/stripped" +proc getOEIS(): seq[seq[string]] = + let f = open(file_path) + var i = 0 + var line : string + var seqs: seq[seq[string]] + while f.read_line(line): + if i > 3: + let seq = split(line, ",") + let l = seq.len + let nums = seq[1..(l-2)] + seqs.add(nums) + i = i + 1 + f.close() + return seqs +var seqs = getOEIS() proc startsWithSubsequence(xs: seq[string], ys: seq[string]): bool = if xs.len == 0: @@ -16,20 +28,13 @@ proc startsWithSubsequence(xs: seq[string], ys: seq[string]): bool = else: return false -let f = open(file_path) -var line : string +proc getSequencesWithStart(seqs: seq[seq[string]], start: seq[string]): seq[seq[string]] = + var continuations: seq[seq[string]] + for seq in seqs: + if startsWithSubsequence(start, seq): + continuations.add(seq) + return continuations -var i = 0 var start = @["1", "2", "3"] -var seqs: seq[seq[string]] -while f.read_line(line): - if i > 3: - let seq = split(line, ",") - let l = seq.len - let nums = seq[1..(l-2)] # .map(proc (x: string): BigInt = initBigInt(x)) - if startsWithSubsequence(start, nums): - seqs.add(nums) - i = i + 1 -f.close() - -echo seqs +var continuations = getSequencesWithStart(seqs, start) +echo continuations