Preheat the oven to 180ºC/350ºF/gas 4. Grease and line a 22cm-square cake tin or a round equivalent with greaseproof paper. Beat the butter and sugar together by hand or in a food processor until pale and fluffy. Beat in the egg yolks one by one, and add the orange zest and juice. Stir in the sifted flour and baking powder, and add the ground almonds, walnuts, spices and grated carrot and mix together well.
In a separate bowl, whisk the egg whites with a pinch of salt until stiff, then gently fold them into the cake mix. Scoop the mixture into the prepared cake tin and cook in the preheated oven for about 50 minutes until golden and risen. You can check to see if the cake is cooked by poking a cocktail stick into it. Remove it after 5 seconds and if it comes out clean the cake is cooked; if slightly sticky, it needs a bit longer, so put it back in the oven. Leave the cake to cool in the tin for 10 minutes, then turn it out on to a rack and rest for at least an hour.
Mix all the icing ingredients together and spread generously over the top of the cake. Finish off with a sprinkling of chopped walnuts.