# Introduction

All these snakes everywhere! I've had enough, and have decided that I much prefer camels. Therefore, I want you to convert my snakes to camels for me.

# Challenge

Turn any snake_case string into a camelCase string.
Capitals should be returned to lowercase before the conversion occurs.

# Test Cases

In: camel_case
Out: camelCase

In: curse_these_snakes
Out: curseTheseSnakes

In: AAAAA_BBBBB
Out: aaaaaBbbbb

# Rules

As per usual, standard loophole rules apply.
This is - shortest answer wins. Leading/trailing underscores (e.g _string_) are ignored.

# Current Winners (subject to change)

## Esoteric Language

Me, with -1 bytes.

## Standard Language

Also me, with -2 bytes.

• What about strings starting with an underscore? eg. _a
– IMP1
Nov 19 '19 at 11:57
• Very similar Nov 19 '19 at 12:00
• Hm. My research couldn't seem to find that, so I apologise - should I remove the question? Nov 19 '19 at 12:01
• Similar but not the same in my opinion.. Here we have only snake to camel, and not tile convention at all, e.g. The first word is lower case. Nov 19 '19 at 16:02

# Python 3, 51 bytes

lambda s:s[0].lower()+s.title().replace('_','')[1:]

Try it online!

-4 bytes thanks to ReinstateMonica

• Unless it introduces some edge case I'm not seeing, replace is shorter Nov 19 '19 at 12:12
• @ReinstateMonica yep, fair. Nov 19 '19 at 12:15
• Trailing underscores are removed. In case of leading underscore next char is removed. Try it online! Nov 20 '19 at 12:29
• @YuriGinsburg Thanks, but a leading underscore is not valid snake_case input, so there's no need to handle it. Nov 20 '19 at 12:46
• @YuriGinsburg This really very much depends on how you define 'ignored'. Since this challenge is already closed as a duplicate, I will leave it as is. Nov 20 '19 at 13:30