Ruby에서 배열의 배열을 받아 들여 해시로 변환 할 수있는 함수를 작성하려고합니다. 이것은 문장을 시뮬레이트하고 임의의 단어 순서를 생성하는 데 사용됩니다. 결과지도는 현재 문장 규칙에서 사용 가능한 모든 문장 조합을 생성하는 데 도움이됩니다.Ruby에서 배열 배열로지도 만들기
어떻게해야합니까? 나는 어디에서 시작 해야할지에 관해서는 조금 잃어버린다.
Ruby에서 배열의 배열을 받아 들여 해시로 변환 할 수있는 함수를 작성하려고합니다. 이것은 문장을 시뮬레이트하고 임의의 단어 순서를 생성하는 데 사용됩니다. 결과지도는 현재 문장 규칙에서 사용 가능한 모든 문장 조합을 생성하는 데 도움이됩니다.Ruby에서 배열 배열로지도 만들기
어떻게해야합니까? 나는 어디에서 시작 해야할지에 관해서는 조금 잃어버린다.
이 시도 :
arr = [ ["<start>", "The <object> <verb> tonight."],
["<object>", "waves", "big yellow flowers", "slugs"],
["<verb>", "sigh <adverb>", "portend like <object>", "die <adverb>"],
["<adverb>", "warily", "grumpily"] ]
arr.map { |ar| [ar.shift, ar.map { |str| str.split }] }.to_h
#=>
#{ "<start>" => [["The", "<object>", "<verb>", "tonight."]],
# "<object>" => [["waves"], ["big", "yellow", "flowers"], ["slugs"]],
# "<verb>" => [["sigh", "<adverb>"], ["portend", "like", "<object>"], ["die", "<adverb>"]],
# "<adverb>" => [["warily"], ["grumpily"]] }
ar.shift
는 각 서브 어레이의 첫 번째 요소를 가져. ar.map
과 함께 사용 된 블록은 (공백에서) 나머지 요소를 배열로 나눕니다. 마지막으로 to_h
은 결과 배열을 해시로 변환합니다.
안녕하세요. 우리는 코드 요청 대신이 문제를 해결하려는 시도를보고 싶습니다. 연결된 페이지, "[mcve]"및 "[Stack Overflow 사용자에 대한 연구 노력의 정도] (http://meta.stackoverflow.com/q/261592)"를 포함하여 "[ask]"를 읽으십시오. 현재 귀하의 질문은시기 상조입니다. 시도해보십시오. 좀 더 시도해보고 코드의 한 부분에 대해 특정 질문을하십시오. –