1. Line an 8-inch square baking pan with foil that extends over the sides. Butter the foil and set aside.
2. In a large saucepan, combine the sugar, half-and-half, heavy cream, light corn syrup and salt. Stir over low heat until the sugar is dissolved, about 5 minutes. Bring to a boil and cook, without stirring, for 1 minute. Brush down the sites of the pan with a pastry brush dipped in warm water to remove any sugar crystals that may have formed, and remove from the heat.
3. Stir in the chocolate until melted and completely smooth. Set the pan over medium heat and place a candy thermometer in the pan. Cook the mixture, without stirring, until it reaches 234 degrees F, the soft-ball stage. Remove from the heat.
4. Add the butter and vanilla but just let float on top - do not stir in (stirring at this point can cause graininess).
5. Cool the candy to 110 degrees F by placing the bottom of the pan in cold water to stop the cooking.
6. When it is cool, stir the fudge in the pan with a wooden spoon just until it "snaps" and begins to lose its sheen. (Alternately, transfer the cooled fudge to the bowl of a heavy duty mixer. Using the paddle attachment, beat the fudge on low speed until it begins to thicken and lose its sheen, 5 to 10 minutes. Watch the mixture carefully or it may thicken too much and become unworkable.)
7. Stir in the walnuts. Turn the fudge out into the prepared pan. Smooth the top with an offset spatula, dipping it in hot water as needed. Let stand for at least 1 hour.
8. Use a large knife to score the fudge into 1-inch squares. Cover and refrigerate at least 24 hours.
9. Remove the fudge from the pan and peel off the foil. Use the knife to finish cutting the fudge into squares. The fudge can be stored in an airtight container in the refrigerator for up to 3 weeks. Serve at room temperature.