object Scrabble {
    private val scoreMap: Map<Char, Int> by lazy {
        var tempMap = emptyMap<Char, Int>().toMutableMap()
        tempMap.put('A', 1)
        tempMap.put('B', 3)
        tempMap.put('C', 3)
        tempMap.put('D', 2)
        tempMap.put('E', 1)
        tempMap.put('F', 4)
        tempMap.put('G', 2)
        tempMap.put('H', 4)
        tempMap.put('I', 1)
        tempMap.put('J', 8)
        tempMap.put('K', 5)
        tempMap.put('L', 1)
        tempMap.put('M', 3)
        tempMap.put('N', 1)
        tempMap.put('O', 1)
        tempMap.put('P', 3)
        tempMap.put('Q', 10)
        tempMap.put('R', 1)
        tempMap.put('S', 1)
        tempMap.put('T', 1)
        tempMap.put('U', 1)
        tempMap.put('V', 4)
        tempMap.put('W', 4)
        tempMap.put('X', 8)
        tempMap.put('Y', 4)
        tempMap.put('Z', 10)
        tempMap
    }
    fun scoreWord(inpString: String): Int{
        return inpString.map { it.toUpperCase() }.fold(0, {acc, c -> acc + scoreMap.getOrDefault(c, 0) })
    }
}