2017-11-26 16 views
0

私はML言語について研究し学びます。私は質問をして、それを解決するのが難しいです。私はTraverse、Size、Substring関数を使うと確信していますが、何らかの形で入れることはできません。ちょっと混乱します。手伝ってくれる?与えられたリストの頭字語を見つけるMLプログラム

質問:

val x = [ ["National", "Aeronautics", "and", "Space", "Administration"] 
     , ["The", "North", "Atlantic", "Treaty", "Organization"] 
     ] 

サンプル実行:

val it = [ {acronym="NASA", name="National Aeronautics and Space Administration"}, 
     , {acronym="NATO", name="The North Atlantic Treaty Organization"} 
     ] 
     : nm list 
+0

何を試しましたか?何を手に入れていますか?人々のためのコードを書くだけではありません。 – Loren

+0

私は解決しようとしました。私はこのタイプを書いた。acro = {n:string、n1:string、n2:string、n3:string、n4:string、n5:string、n6:string、n7:string}; val h:acro = {n = "航空"、n2 = "and"、n3 = "スペース"、n4 = "管理"、n5 = ""、n6 = "" 、n7 = ""}; "n5 =" "、n6 =" "、n7 =" "、n7 =" "、n5 =" "、n7 = ""};私はそれを関数と組み合わせることはできません。 – chc

+0

あなたがしようとしていることははっきりしていません。あなたは "NAASA"と "TNATO"に終わらないように "and"と "the"という言葉を捨てるためにどのような基準を使用していますか? –

答えて

2

は、あなたの質問に記載されている情報を見て、私は問題の目標は満たしている機能acronymsを書くことであると推測しています以下の仕様。私はそれをより明確にするために名前を変更するタイプのいくつかの自由を取った:

type words = string list 
type summary = {acronym : string, name : string} 

val acronyms : words list -> summary list 

この機能は、組織名のリストを取ります(単語に分割されている)と要約のリストを生成します。出力の各要約には、入力からの対応する組織が記述されています。

トリッキーな部分は、という単一のを計算する関数acronym : words -> summaryを書きます。私はあなたにacronym機能を残しておきます

fun acronyms orgs = List.map acronym orgs 

:あなたはこの機能を持っていたらたとえば、

- acronym ["National", "Aeronautics", "and", "Space", "Administration"]; 
val it = {acronym="NASA",name="National Aeronautics and Space Administration"} 
    : summary 

は、あなたがList.mapと入力の各組織名に適用することができます。ヒントを開始するには、のフィルタリングを「and」や「the」などの単語を削除する単語のリストとみなしてください。

関連する問題