View Problem

Define an initial map

Define the map {circle:1, triangle:3, square:4}
DiskEdit
clojure
(def m '{circle 1 triangle 1 square 4})
ExpandDiskEdit
cpp C++/CLI .NET 2.0
Hashtable^ shapes = gcnew Hashtable;

shapes->Add("circle", 1);
shapes->Add("triangle", 3);
shapes->Add("square", 4);
ExpandDiskEdit
cpp C++/CLI .NET 2.0
Generic::Dictionary<String^, int>^ shapes = gcnew Generic::Dictionary<String^, int>();

shapes->Add("circle", 1);
shapes->Add("triangle", 3);
shapes->Add("square", 4);
ExpandDiskEdit
cpp
map<string, int> shapes;

shapes["circle"] = 1;
shapes["triangle"] = 3;
shapes["square"] = 4;
ExpandDiskEdit
erlang
Map = dict:from_list([{circle, 1}, {triangle, 3}, {square, 4}]),
ExpandDiskEdit
erlang
Map0 = dict:new(),

% Erlang variables are 'single-assignment' i.e. they cannot be reassigned
Map1 = dict:store(circle, 1, Map0),
Map2 = dict:store(triangle, 3, Map1),
Map3 = dict:store(square, 4, Map2),
ExpandDiskEdit
erlang
Map0 = gb_trees:empty(),

Map1 = gb_trees:enter(circle, 1, Map0),
Map2 = gb_trees:enter(triangle, 3, Map1),
Map3 = gb_trees:enter(square, 4, Map2),
ExpandDiskEdit
erlang
Map = gb_trees:from_orddict(lists:keysort(1, [{circle, 1}, {triangle, 3}, {square, 4}])),
ExpandDiskEdit
erlang
Map = ets:new(the_map_name, [ordered_set, private, {keypos, 1}]),
ets:insert(Map, [{circle, 1}, {triangle, 3}, {square, 4}]),
ExpandDiskEdit
fantom
map := ["circle":1, "triangle":2, "square":4]
ExpandDiskEdit
fsharp
let shapes = Map.ofList [("circle", 1); ("triangle", 3); ("square", 4)]
ExpandDiskEdit
fsharp
let shapes = Map.empty.Add("circle", 1).Add("triangle", 3).Add("square", 4)
ExpandDiskEdit
fsharp
let shapes = new Generic.Dictionary<string, int>()
shapes.Add("circle", 1)
shapes.Add("triangle", 3)
shapes.Add("square", 4)
DiskEdit
fsharp
let shapes = Map [("circle", 1); ("triangle", 3); ("square", 4)]
ExpandDiskEdit
go
m := map[string]int{ "circle": 1, "square": 4, "triangle": 2 }
DiskEdit
groovy
shapes = [circle:1, triangle:3, square:4]
ExpandDiskEdit
groovy
// if you require a specific type of map ...
LinkedHashMap shapes1 = [circle:1, triangle:3, square:4]
Properties shapes2 = [circle:1, triangle:3, square:4]
TreeMap shapes3 = [circle:1, triangle:3, square:4]
shapes4 = [circle:1, triangle:3, square:4] as ConcurrentHashMap // as variation
DiskEdit
haskell
import qualified Data.Map as M

initialMap = M.fromList [("circle", 1), ("triangle", 3), ("square", 4)]

ExpandDiskEdit
java
Map shapes = new HashMap();
shapes.put("circle", 1);
shapes.put("triangle", 3);
shapes.put("square", 4);
ExpandDiskEdit
java
Map shapes = new HashMap() {{ put("circle",1); put("triangle",3); put("square",4); }}
DiskEdit
ocaml
module StringMap = Map.Make (String)

let m0 = StringMap.empty

let m1 = StringMap.add "circle" 1 m0
let m2 = StringMap.add "triangle" 3 m1
let m3 = StringMap.add "square" 4 m2
DiskEdit
ocaml
let m = Hashtbl.create 42;;

Hashtbl.replace m "circle" 1;;
Hashtbl.replace m "triangle" 3;;
Hashtbl.replace m "square" 4;;
DiskEdit
perl
%map = (circle => 1, triangle => 3, square => 4);
ExpandDiskEdit
php
$map = array("circle" => 1, "triangle" => 3, "square" => 4);
DiskEdit
python
shapes = {'circle': 1, 'square': 4, 'triangle': 2}
DiskEdit
ruby
shapes = {'circle'=>1, 'triangle'=>3, 'square'=>4}
DiskEdit
ruby
shapes = Hash['circle', 1, 'triangle', 3, 'square', 4]
DiskEdit
ruby
shapes = { :circle => 1, :triangle => 3, :square => 4 }
ExpandDiskEdit
scala
val shapes = immutable.TreeMap("circle" -> 1, "triangle" -> 3, "square" -> 4)
ExpandDiskEdit
scala
val shapes = mutable.Map.empty[String, Int]

shapes += "circle" -> 1
shapes += "triangle" -> 3
shapes += "square" -> 4
ExpandDiskEdit
scala
var shapes = immutable.Map.empty[String, Int]

shapes = shapes + ("circle" -> 1)
shapes = shapes + ("triangle" -> 3)
shapes = shapes + ("square" -> 4)
DiskEdit
scala
val shapes = immutable.Map(
"circle" -> 1,
"triangle" -> 3,
"square" -> 4
)
DiskEdit
scala
val map = Map("circle" -> 1, "triangle" -> 3, "square" -> 4)

Submit a new solution for clojure, cpp, erlang, fantom ...