Utilizzando l'operatore each con la funzione senza in APL
Ho un array nidificato con i seguenti dati:
┌→────────────────┐
│ ┌→────┐ ┌→────┐ │
│ │ABC12│ │DEF34│ │
│ └─────┘ └─────┘ │
└∊────────────────┘
Vorrei rimuovere i numeri da ciascuno, in modo che assomigli a questo:
┌→────────────┐
│ ┌→──┐ ┌→──┐ │
│ │ABC│ │DEF│ │
│ └───┘ └───┘ │
└∊────────────┘
Ho provato a utilizzare la funzione senza (~) con l'operatore each (¨) e un argomento a destra di "0123456789" ma ottengo un errore di lunghezza. Ho anche provato a mettere ogni numero nel proprio array in questo modo:
┌→────────────────────────────────────────┐
│ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ ┌→┐ │
│ │0│ │1│ │2│ │3│ │4│ │5│ │6│ │7│ │8│ │9│ │
│ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ │
└∊────────────────────────────────────────┘
ma anche questo ha provocato un errore di lunghezza. Qualsiasi aiuto sarebbe apprezzato.
Risposte
Supponendo Dyalog APL, potresti provare una funzione diretta che rimuove le cifre ( ⎕D
) dalle stringhe, applicata a ciascuna stringa nel tuo array, ad es.
yourData
┌→────────────────┐
│ ┌→────┐ ┌→────┐ │
│ │ABC12│ │DEF34│ │
│ └─────┘ └─────┘ │
└∊────────────────┘
{⍵~⎕D}¨yourData
┌→────────────┐
│ ┌→──┐ ┌→──┐ │
│ │ABC│ │DEF│ │
│ └───┘ └───┘ │
└∊────────────┘
Quello che stai cercando è sottrarre set ("senza ing") l' intero set di cifre ( ⎕D
) da ciascuno. Quindi racchiudiamo il set di cifre per agire su di esso nel suo insieme:
'ABC12' 'DEF34'~¨⊂⎕D
┌→────────────┐
│ ┌→──┐ ┌→──┐ │
│ │ABC│ │DEF│ │
│ └───┘ └───┘ │
└∊────────────┘
Provalo online!
Nota come questo si legge molto come quello che vuoi:
I tuoi dati (
'ABC12' 'DEF34'
) senza (~
) ogni (¨
) dell'intero (⊂
) insieme di cifre (⎕D
).