| Bytes | Lang | Time | Link |
|---|---|---|---|
| 037 | Ruby | 250522T083809Z | Value In |
| 004 | Uiua 0.17.0dev.1 | 250520T011450Z | Tbw |
| 011 | JavaScript V8 | 250520T065154Z | l4m2 |
| 002 | Japt | 250520T160153Z | Shaggy |
| 075 | Python 3.8 prerelease | 250520T014151Z | squarero |
| 028 | JavaScript V8 | 250520T040440Z | Steve Be |
Ruby, 37 bytes
Abuses the fact that $. (counts the number of lines read from STDIN) defaults to 0 for some pure-punctuation number shenanigans.
-~$. evaluates to 1, which I check against __=~/$/ which gets the position of the end of the non-pronunciation string (aka string length). If they are the same, it assigns that string to a 0-length slice of the pronunciation string, which is the same as a basic insert. If that input isn't a 1-length string, it tries to assign to a false-length slice, which errors out.
->__,_{_[9,-~$.==(__=~/$/)&&$.]=__;_}
Ruby, 20 bytes
Assumes first input is always non-pronunciation characters only and the second input is always pronunciation characters only.
->__,_{_[9,$.]=__;_}
Uiua 0.17.0-dev.1, 6 4 bytes SBCS
♭(⍉)
Takes "♭⍉" and "()" in an array (per the comment on the post) on the stack and returns the source code for only that input.
♭⍉ interleaves the two strings. The parentheses are superfluous.
JavaScript (V8), 11 bytes
f=$=>_=>$+_
Python 3, 59 bytes
lambda x ,y :x .replace ( ' ' , ' %c ' [ :3 ] ) %tuple (y )
Japt, 2 bytes
Pretty trivial in Japt; takes input as an array of 2 strings, sorts by index (which maintains the original order), and outputs an array of characters.
n,
Python 3.8 (pre-release), 150 141 75 bytes
-9 bytes by aliasing filter and str.isalnum.
-66 bytes by Mukundan314. What the heck.
exec(c:="sorted(d:='exec(c:=%r) '%c,key=str.isalpha)==[*input()]>print(d)")
JavaScript (V8), 28 bytes
($,_)=>_.replace(/\./,'.'+$)
I'm a little bit shocked that I found a solution, I'm pretty terrible at quines.