Skip to content

Instantly share code, notes, and snippets.

View igorbonadio's full-sized avatar

Ígor Bonadio igorbonadio

View GitHub Profile
@igorbonadio
igorbonadio / alignment.hs
Created April 8, 2016 14:06
Needleman-Wunsch algorithm implementation in Haskell
import Data.Array
import Data.List
import Data.Ord
fromBlosum :: Char -> Int
fromBlosum a = case elemIndex a "ARNDCQEGHILKMFPSTWYVBJZX" of
Just i -> i
Nothing -> error "Invalid amino acid"
toBlosum :: Int -> Char
@igorbonadio
igorbonadio / alignment2.hs
Created April 8, 2016 21:26
Needleman-Wunsch algorithm implementation in Haskell (tail recursive version)
import Data.Array
import Data.List
import Data.Ord
fromBlosum :: Char -> Int
fromBlosum a = case elemIndex a "ARNDCQEGHILKMFPSTWYVBJZX" of
Just i -> i
Nothing -> error "Invalid amino acid"
toBlosum :: Int -> Char
#lang racket
(module+ test
(require rackunit))
; boolean
(define @true (lambda (t) (lambda(f) t)))
(define @false (lambda (t) (lambda(f) f)))
(define (->boolean boolean) ((boolean #t) #f))
(module+ test