ho bisogno di fare ampio uso di:modo idiomatico di prendere una stringa di un ByteString
slice :: Int -> Int -> ByteString -> ByteString
slice start len = take len . drop start
due parte domanda:
- fa questo già un nome? Non riesco a trovare nulla che cerchi quel tipo su Hoogle, ma sembra che dovrebbe essere un'esigenza molto comune. Ho anche provato a cercare
(Int, Int) -> ByteString -> ByteString
e alcune versioni dello stessoflip
. Ho anche provato a cercare le versioni[a]
per vedere se c'era un nome in uso comune. - C'è un modo migliore per scriverlo?
Sono sospettoso che sto facendo qualcosa di sbagliato perché mi aspettavo fortemente di trovare molte persone che hanno percorso la stessa strada, ma il mio google-fu non sta trovando nulla.
Questo è rilevante: http://stackoverflow.com/questions/4597820/does-haskell-have-list-slices-i-e-python – jozefg
Grazie jozefg. Una delle risposte menziona 'slice :: Int -> Int -> Vector a -> Vector a', quindi è un precedente per la scelta del nome. –
Sono abbastanza sicuro che il tuo modo è il modo idiomatico (e migliore della risposta collegata). È anche il modo più efficiente (entrambe le operazioni sono O (1)). –