내가 말할 수 없습니다 여기 내 코드입니다 일반 또는 목록에 요소를 추가하십시오.
OCaml의 목록은 변경 불가능하므로 실제로 기존 목록에 값을 삽입 할 방법이 없습니다. 원하는 양식을 가진 새 목록을 만들어야합니다. 순서를 신경 쓰지 않는다면이 목록의 처음에 새 값을 추가하는 것이 가장 쉽습니다 (newval :: thelist
).
주문에 관심이있는 경우 올바른 위치를 찾기 위해 목록을 살펴 봐야합니다. 이 코드는 새 목록을 반환
let rec addint list i =
match list with
| [] -> [i]
| h :: t -> if i < h then i :: list else h :: addint t i
참고 : 여기에 목록이 증가하는 순서로 정렬 상태를 유지하도록 목록에 새 값을 추가하는 몇 가지 코드입니다. OCaml에서는 불가능한 기존 목록을 수정하지 않습니다.
이 코드를 사용하여 임의의 값에서 목록을 작성하는 경우 예상 실행 시간은 목록의 최종 길이에서 2 차입니다. 긴 목록의 더 좋은 방법은 목록을 순서대로 작성한 다음 끝에 정렬하는 것입니다.
문제가 오토 마톤을 읽는 것이면, 이것은 털이 많은 코드처럼 들리지만, 대부분 사람이 오류없이 입력하는 것은 정말 어렵다고 들립니다. 사용자로부터 값을 읽으려는 코드가 귀하의 pastebin에 표시되지 않습니다. 그래서 저는 여러분의 문제가 다른 곳에 있다고 가정 할 것입니다.
문제를 매우 적은 수로 줄여서 여기에 포함 시키십시오. 나는 당신이 그런 식으로 더 나은 대답을 얻을 것이라고 생각합니다.
내 문제는 실제로 사용자로부터 값을 읽고 있습니다. 나는 사용자로부터 automatons를 얻을 수 있기를 원합니다. –
문제를 아주 작게 만들고 여기에 코드를 포함 시키면 더 나은 답을 얻을 수 있습니다. 이유에 대한 설명이 있습니다. 작동하지 않는 것 같습니다. 그렇지 않으면 누군가가 당신을 위해 코드를 작성하도록 요청하고 있습니다. –