1
나는 튜플의리스트를 가지고있다. 나는이리스트에서 두개의 튜플을 무작위로 선택하고이 튜플을 교환하고 싶다. 예를 들어 ((0, 0), (1, 0), (1, 1), (1, 2), (2, 2), (0, 2) 등의 목록이있는 경우sml을 사용하여 목록에서 항목을 변경하는 방법은 무엇입니까?
그런 다음 무작위로 두 개의 튜플을 선택하십시오. (0, 0), (1, 1), (1, 2), ((1, 0), 2, 2), (0, 2)).
나는 SML을 처음 사용하는데, 고생하고있다. psudo-code가 있습니다. 내가 맞지 않다고 생각합니다. 누구든지 올바른 것을 도와 줄 수 있습니까? :
fun permutation(lst:(int*int) list)=
let
val nextInt = Random.randRange (1,List.length(lst))
val r = Random.rand (1,1)
val x1 = nextInt r
val x2 = nextInt r
val temp = sub(lst,r1)
update(lst,r1,sub(lst,r2))
update(lst,r2,temp)
in
lst
end