Sha256: 941071be8accdc00345be832926cc311e621223a309e1054761f759942664b0f

Contents?: true

Size: 658 Bytes

Versions: 396

Compression:

Stored size: 658 Bytes

Contents

(defmodule dna
  (export (count 2)
          (nucleotide-counts 1)))

(defun validate (nucleotide)
  (if (lists:member nucleotide '("A" "C" "G" "T"))
    `#(ok ,nucleotide)
    (erlang:error (++ "Invalid nucleotide: '" nucleotide "'"))))

(defun count (strand nucleotide)
  ;; `validate` will throw iff `nucleotide` is invalid.
  (validate nucleotide)
  (lists:foldl
    (lambda (nucleotide* sum)
      (if (=:= (validate `(,nucleotide*)) `#(ok ,nucleotide))
        (+ sum 1)
        sum))
    0
    strand))

(defun nucleotide-counts (strand)
  (lists:map
    (lambda (nucleotide)
      `#(,nucleotide ,(count strand nucleotide)))
    `("A" "C" "G" "T")))

Version data entries

396 entries across 396 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/lfe/exercises/nucleotide-count/src/example.lfe
trackler-2.2.1.179 tracks/lfe/exercises/nucleotide-count/src/example.lfe
trackler-2.2.1.178 tracks/lfe/exercises/nucleotide-count/src/example.lfe
trackler-2.2.1.177 tracks/lfe/exercises/nucleotide-count/src/example.lfe
trackler-2.2.1.176 tracks/lfe/exercises/nucleotide-count/src/example.lfe
trackler-2.2.1.175 tracks/lfe/exercises/nucleotide-count/src/example.lfe
trackler-2.2.1.174 tracks/lfe/exercises/nucleotide-count/src/example.lfe
trackler-2.2.1.173 tracks/lfe/exercises/nucleotide-count/src/example.lfe
trackler-2.2.1.172 tracks/lfe/exercises/nucleotide-count/src/example.lfe
trackler-2.2.1.171 tracks/lfe/exercises/nucleotide-count/src/example.lfe
trackler-2.2.1.170 tracks/lfe/exercises/nucleotide-count/src/example.lfe
trackler-2.2.1.169 tracks/lfe/exercises/nucleotide-count/src/example.lfe
trackler-2.2.1.167 tracks/lfe/exercises/nucleotide-count/src/example.lfe
trackler-2.2.1.166 tracks/lfe/exercises/nucleotide-count/src/example.lfe
trackler-2.2.1.165 tracks/lfe/exercises/nucleotide-count/src/example.lfe
trackler-2.2.1.164 tracks/lfe/exercises/nucleotide-count/src/example.lfe
trackler-2.2.1.163 tracks/lfe/exercises/nucleotide-count/src/example.lfe
trackler-2.2.1.162 tracks/lfe/exercises/nucleotide-count/src/example.lfe
trackler-2.2.1.161 tracks/lfe/exercises/nucleotide-count/src/example.lfe
trackler-2.2.1.160 tracks/lfe/exercises/nucleotide-count/src/example.lfe