Sha256: b3f153333ed42a055340a6208395b5800ee7c503caf1be9196140c1e0573f6b3

Contents?: true

Size: 610 Bytes

Versions: 396

Compression:

Stored size: 610 Bytes

Contents

(defpackage #:dna
  (:use #:common-lisp)
  (:export #:dna-count #:nucleotide-counts #:invalid-nucleotide))

(in-package #:dna)

(define-condition invalid-nucleotide (error) ())

(defparameter +valid-nucleotides+ "ACGT")

(defun validate-nucleotide (nucleotide)
  (or (find nucleotide +valid-nucleotides+)
      (error 'invalid-nucleotide)))

(defun dna-count (nucleotide strand)
  (validate-nucleotide nucleotide)
  (count nucleotide strand))

(defun nucleotide-counts (strand)
  (reduce #'(lambda (h c) (setf (gethash c h) (dna-count c strand)) h)
	  +valid-nucleotides+
	  :initial-value (make-hash-table)))

Version data entries

396 entries across 396 versions & 1 rubygems

Version Path
trackler-2.2.1.119 tracks/common-lisp/exercises/nucleotide-count/example.lisp
trackler-2.2.1.118 tracks/common-lisp/exercises/nucleotide-count/example.lisp
trackler-2.2.1.117 tracks/common-lisp/exercises/nucleotide-count/example.lisp
trackler-2.2.1.116 tracks/common-lisp/exercises/nucleotide-count/example.lisp
trackler-2.2.1.115 tracks/common-lisp/exercises/nucleotide-count/example.lisp
trackler-2.2.1.114 tracks/common-lisp/exercises/nucleotide-count/example.lisp
trackler-2.2.1.113 tracks/common-lisp/exercises/nucleotide-count/example.lisp
trackler-2.2.1.111 tracks/common-lisp/exercises/nucleotide-count/example.lisp
trackler-2.2.1.110 tracks/common-lisp/exercises/nucleotide-count/example.lisp
trackler-2.2.1.109 tracks/common-lisp/exercises/nucleotide-count/example.lisp
trackler-2.2.1.108 tracks/common-lisp/exercises/nucleotide-count/example.lisp
trackler-2.2.1.107 tracks/common-lisp/exercises/nucleotide-count/example.lisp
trackler-2.2.1.106 tracks/common-lisp/exercises/nucleotide-count/example.lisp
trackler-2.2.1.105 tracks/common-lisp/exercises/nucleotide-count/example.lisp
trackler-2.2.1.104 tracks/common-lisp/exercises/nucleotide-count/example.lisp
trackler-2.2.1.103 tracks/common-lisp/exercises/nucleotide-count/example.lisp
trackler-2.2.1.102 tracks/common-lisp/exercises/nucleotide-count/example.lisp
trackler-2.2.1.101 tracks/common-lisp/exercises/nucleotide-count/example.lisp
trackler-2.2.1.100 tracks/common-lisp/exercises/nucleotide-count/example.lisp
trackler-2.2.1.99 tracks/common-lisp/exercises/nucleotide-count/example.lisp