Step 1
Lightly butter an 8-inch (20-cm) square pan and set aside.
Step 2
In a large, heavy saucepan over medium heat, combine the butter, sugars, corn syrup, half-and-half, and salt and bring to a boil, stirring constantly. Using a pastry brush dipped in hot water, brush down any sugar crystals that form on the sides of the pan. Boil for 2 ½ minutes and then stir in the chocolate until melted and well blended. Continue to boil, without stirring, until a candy thermometer reads 234°F (112°C), 7–10 minutes.
Step 3
Remove from the heat and let cool until almost room temperature, or 110°F (43°C) on a candy thermometer, about 15 minutes. Using an electric mixer, beat the fudge until the color dulls and the fudge is creamy, 2–3 minutes. Mix in the walnuts by hand.
Step 4
Sprinkle the marshmallows in the prepared pan and spoon the fudge over them. Lay a piece of plastic wrap across the surface and, using your hands, press the fudge down into the marshmallows. Remove the plastic and smooth the surface of the fudge with a spatula. Cover the pan with aluminum foil and refrigerate until firm, about 6 hours. Cut into 2-inch (2.5-cm) bars, or any shape desired, to serve or give as a gift.