2014-09-16 3 views
0

OCaml에서 int를 소팅 된리스트에 삽입하고 새로운리스트를 반환하는 함수 insert : int -> list -> list을 작성하는 효율적인 방법은 무엇입니까? 내가 코드를 요구하기 때문에OCaml : 정렬 된 정수리스트에 정수를 삽입하십시오.

let insert x list = 
match list with 
    [] -> [x] 
    | list :: t -> list :: (insert t x) 
+0

유용한 답변을 원하면 질문에 대한 추가 작업이 필요합니다. 가장 좋은 방법은 작성한 일부 코드를 표시하고 잘못된 코드가 무엇인지 설명하는 것입니다. 생각해 봐야 할 점 : 새 int가 정렬 된 목록의 첫 번째 요소보다 작다는 것을 알면 코드의 모양은 어떻게됩니까? –

답변

2

, 나는 내가

귀하의 코드 :-) 당신에게 피드백을 제공한다 같아요

내가 목록의 끝에 추가 지금까지 무엇을 가지고 문제에 대한 재귀 적 해결책을 대략적으로 가지고있다. 내가 보는 가장 큰 문제는 다음과 같습니다.

  • 어디에도 새 값 x를 목록의 값과 비교하지 않습니까? 반환 된 목록이 정렬되어 있는지 확인할 수있는 방법이 없습니다.

  • insert에 대한 재귀 호출의 순서가 잘못되었습니다.

작은 문제 :

  • 당신은 let rec insert ...은 재귀 함수를 정의 할 말을해야합니다. 당신은 아마 약 3 예, 대신 2를 생각하고 싶지

당신은 여기에 있습니다 :

  1. 목록
  2. 새로운 값이 목록의 시작 부분보다 작거나 같은 비어
  3. 새 값이 목록의 시작 부분보다 큽니다.

이 정보가 도움이되기를 바랍니다.

관련 문제