I think, conceptually, at least on a surface level, you could make something that felt like a dictionary, but there's not really any hashing going on. The compiler is just swapping in line number jump targets for those labels, and you are dealing with constant data. But this is a clever way of encapsulating some convenient ways of managing data. I imagine you are thinking of something like the following idea? (completely untested btw, I imagine I got the RESTORE part wrong)
DIM MONSTERS$=["Goblin","Human","Orc"] GET_DATA MONSTERS$ OUT HP1,STR1 'Gets the Goblin data GET_DATA MONSTERS$ OUT HP2,STR2 'Gets the Human data GET_DATA MONSTERS$ OUT HP3,STR3 'Gets the Orc data DEF GET_DATA NAME$ OUT OHP,OSTR RESTORE NAME$ READ OHP,OSTR END @Goblin DATA 10,3 @Human DATA 12,4 @Orc DATA 15,6Where the input string in the function is all that's needed to pull a completely different set of data ("Goblin" -> "Human" in the first line, for instance). The indexing is overkill, but just trying to make this feel like more of a dictionary.