2014-05-14 6 views
0

하스켈에서 F #으로 프로그램을 변환하고 있습니다. .Net에서 Haskell 라이브러리에 액세스하는 데 문제가 있습니다.F # 형식이 일치하지 않습니다.

이 선언에 어떤 문제가 있습니까?

type Product = string 


type Shopping = Product list 

let p_tea = "Tea" 
let p_sugar = "Sugar" 
let p_coffee = "Coffee" 
let p_biscuit = "Biscuit" 
let p_milk = "Milk" 
let p_soya = "Soya" 

let shopping = [p_tea,p_sugar,p_coffee,p_biscuit,p_milk] 

다음과 같은 오류가 발생합니다. 하스켈에서 비슷한 선언이 적용됩니다 .. !!

Type mismatch. Expecting a 
    Shopping  
but given a 
    (string * string * string * string * string) list  
+0

튜플 목록과 비슷합니다. 아마도 당신은 사용하고 싶을 것입니다; 분리기로서. –

+1

사이드 노트, 더 관용적 인 F #은'type Product = | Product of string'이 될 것입니다. 유형 별명은 비교적 드뭅니다. –

답변

1

F 번호가 모음 요소를 분리하는 튜플 요소 쉼표로 구분 사용, 세미콜론. 원하는 항목 :

let shopping = [p_tea; p_sugar; p_coffee; p_biscuit; p_milk] 
0

F # 목록 (및 배열) 항목은 세미콜론으로 구분됩니다. 튜플은 쉼표로 구분됩니다.

type Product = string 

type Shopping = Product list 

let p_tea = "Tea" 
let p_sugar = "Sugar" 
let p_coffee = "Coffee" 
let p_biscuit = "Biscuit" 
let p_milk = "Milk" 
let p_soya = "Soya" 

let shopping = [p_tea; p_sugar; p_coffee; p_biscuit; p_milk] 
관련 문제