A full program that accepts listsa list of lowercase characters and prints the result.
How?
<TḢị - Link 1, extract first value from y not less than x: number, x; list of numbers, y
- e.g. 5, [3,4,7]
< - x less than vectorised across y [0,0,1]
T - truthy indices [ 3]
Ḣ - head 3
ị - index into y 7
e€Øyµ¬TĖEÐḟḢṪ;ç¥T - Link 2, indices of the letters to manipulate: list of characters, w
Øy - vowel+ yield = "AEIOUYaeiouy" e.g. "smouching"
e€ - exists in for €ach letter in w 001100100
µ - monadic chain separation, call that v
¬ - not vectorised across v 110011011
T - truthy indices 12 56 89
Ė - enumerate [[1,1],[2,2],[3,5],[4,6],[5,8],[6,9]]
Ðḟ - filter discard if:
E - elements are equal [[3,5],[4,6],[5,8],[6,9]]
Ḣ - head [3,5]
Ṫ - tail 5
T - truthy indices of v 34 7
¥ - last 2 links as a dyad
ç - call last link (1) as a dyad 7
; - concatenate 5,7
- ...i.e the indexes of 'c' and 'i'
ḣÇḢ⁸ÇịµḢØYiị“ßȷ%Hẹrȧq’œ?ØY¤⁾cgy;ẋ2 - Main link: list of characters, w
- e.g. "smouching"
Ç - call the last link (2) as a monad [5,7]
ḣ - head to index (vectorises) ["smouc","smouchi"]
Ḣ - head "smouc"
- implicit print due to below leading constant chain
⁸ - link's left argument, w
Ç - call the last link (2) as a monad [5,7]
ị - index into w "ci"
µ - monadic chain separation, call that p
Ḣ - head p 'c'
ØY - consonant- yield = "BCDFGHJKLMNPQRSTVWXZbcdfghjklmnpqrstvwxz"
i - first index 22
¤ - nilad followed by link(s) as a nilad:
“ßȷ%Hẹrȧq’ - base 250 number = 1349402632272870364
ØY - consonant- yield = "BCDFGHJKLMNPQRSTVWXZbcdfghjklmnpqrstvwxz"
œ? - nth permutation = "BCDFGHJKLMNPQRSTVWXZpctvkhjglmnbqrzdfwxs"
ị - index into (special case ->) 'c'
⁾cg - literal ['c','g']
y - translate (change 'c's to 'g's) 'g'
; - concatenate with the headed p "gi"
ẋ2 - repeat list twice "gigi"
- implicit print ...along with earlier = smoucgigi