The following should work for you:
sapply(ls()[1:44], function(x) foo(get(x)), simplify = TRUE)
You can compare the behavior with the following:
> ls()[1]
[1] "clc06_1"
> foo(ls()[1])
[1] "clc06_1"
> foo(get(ls()[1]))
[1] "111"
which is already explained in juba's answer.
Having shown that why aren't you using a list
?
Compare:
mylist <- list(clc06_1 = "111 - Continuous urban fabric",
clc06_2 = "112 - Discontinuous urban fabric",
clc06_3 = "121 - Industrial or commercial units",
clc06_4 = "122 - Road and rail networks and associated land",
clc06_5 = "123 - Port areas",
clc06_6 = "124 - Airports")
sapply(mylist, foo)
# clc06_1 clc06_2 clc06_3 clc06_4 clc06_5 clc06_6
# "111" "112" "121" "122" "123" "124"