32 lines
874 B
Text
32 lines
874 B
Text
|
#! /usr/bin/env bqn
|
|||
|
|
|||
|
# From BQN documentation / quick start:
|
|||
|
# https://mlochbaum.github.io/BQN/doc/quick.html
|
|||
|
|
|||
|
# Case conversion utilities
|
|||
|
case ← {
|
|||
|
diff ← -´ "Aa"
|
|||
|
Lower ⇐ -⟜diff
|
|||
|
Upper ⇐ Lower⁼
|
|||
|
}
|
|||
|
|
|||
|
hw ← <˘ 2‿∘ ⥊ "helloworld"
|
|||
|
hw case.Upper⌾(⊑¨)↩
|
|||
|
•Out hw ↩ ∾ ⥊⍉ [hw, ", "‿"!"] # Hello, World!
|
|||
|
|
|||
|
# Split at spaces and repeated characters
|
|||
|
Split ← {
|
|||
|
!1==𝕩 ⋄ (!2=•Type)¨𝕩
|
|||
|
Proc ← {
|
|||
|
· 𝕊 ' ': spl⇐1 ; # Space: break and delete it
|
|||
|
prev Fn cur: ⟨spl,str⟩⇐
|
|||
|
spl←0 ⋄ str←⟨cur⟩ # Include and don't break...
|
|||
|
{ prev=cur ? spl+↩1 ; @ } # except at equal characters
|
|||
|
}
|
|||
|
GV‿GS ← {𝕏¨}¨ ⟨ {⟨s⇐str⟩:s;""}
|
|||
|
{𝕩.spl} ⟩
|
|||
|
r ← Proc{»𝔽¨⊢} 𝕩
|
|||
|
(∾¨ GV ⊔˜ ·+`GS) r
|
|||
|
}
|
|||
|
•Show Split hw # ⟨ "Hel" "lo," "World!" ⟩
|