これは、私の「変換」メソッドの署名です。
let rec transform (f: -> 'a -> 'b) (l: 'a list): 'b list =
begin match l with
| [] -> []
| hd :: rest -> (f hd) :: (transform f rest)
end
アイデアは、ヌクレオチドの補数を見つけたいということです。G は C と相補的であり、A は T と相補的です。
これは私が自分の関数を実装した方法ですが、ネストされた if ステートメントの束よりも効率的な方法があるのではないかと考えていました。
type nucleotide = G | C | A | T
type helix = nucleotide list
let complementary_helix_f: nucleotide -> nucleotide =
fun (n: nucleotide) -> if n = G then C
else if n = C then G
else if n = A then T
else A