Calculatrice qui ajoute des valeurs char

18

Tâche

Construisez une calculatrice, qui prend n'importe quelle chaîne, à partir d'un fichier, stdin ou autre, et additionne toutes les valeurs des caractères.

Exemple

Input
Hello World!

Output
1085

Règles

La calculatrice doit accepter uniquement le codage ASCII.

Le code le plus court gagne.

Remarques

En ce qui concerne le commentaire de m.buettner, je dois dire que je n'ai pas pensé à la partie multi-octets.
Je laisse donc cela en bonus.
La calculatrice doit être exécutée telle qu'elle est écrite, donc pas besoin de la modifier avant la compilation ou l'interprétation.

Prime

Grâce à Synthetica , voici encore un bonus,

Le programme qui a la sortie la plus faible lorsque vous utilisez son code lorsque son entrée gagne obtient une étoile.

Je ne veux pas le modifier complètement.

Si vous l'écrivez en plus pour afficher la valeur (à droite) en UTF-8, vous obtenez une étoile.

Le code qui s'exécute le plus rapidement sur mon ordinateur portable (Lenovo Yoga 13 Intel Core i5 3317U 1,7 GHz, 8 Go de RAM, 128 Go SSD, Intel HD 4000, Windows 8) obtient une étoile.

Les codes Web s'exécuteront d'abord sous IE11 avec chakra puis dans FireFox 29.0.1 avec SpiderMonkey

Le code Linux s'exécutera sur un Raspberry Pi avec Raspbian.

La corde de test est la suivante:

q/%8hnp>T%y?'wNb\},9krW &D9']K$n;l.3O+tE*$*._B^s!@k\&Cl:EO1zo8sVxEvBxCock_I+2o6 yeX*0Xq:tS^f)!!7=!tk9K<6#/E`ks(D'$z$\6Ac+MT&[s[]_Y(`<g%"w%cW'`c&q)D$0#C$QGf>?A$iawvc,}`9!('`c&q)D$0#C$QGf>?A$iawvc,}`9!(

Amusez-vous à coder :)

Bonusscoring

J'ai l'intention de faire le pointage ce samedi afin que le 07.06.14, toutes les réponses après cette date n'obtiennent pas de points bonus;)

Vous pouvez télécharger le code que je vais utiliser pour les tests ici, n'hésitez pas à le fork et à l'améliorer :)

Petite mise à jour à cause du bonus, mon ordinateur portable est partiellement cassé donc je le ferai probablement le week-end prochain, j'en suis vraiment désolé :(

Knerd
la source
3
J'obtiens 1085 pour avoir Hello World!utilisé deux langues différentes pour les valeurs ASCII sur mon ordinateur.
Kyle Kanos
1
Il a probablement oublié d'ajouter le '!'. edit tu étais 3 secondes plus rapide ...
gxtaillon
1
Pourrait-on expliquer les downvotes?
Knerd
3
Je suppose que les votes négatifs indiquent que ce n'est pas vraiment un bon problème.
Kyle Kanos
5
@Knerd principalement, parce que c'est un peu trop trivial dans la plupart des langues (comme vous pouvez le voir d'après la longueur des soumissions que vous avez déjà reçues)
Martin Ender

Réponses:

10

GolfScript, 4 caractères

{+}*

Utilise simplement l'opérateur de pliage ( *) pour additionner tous les caractères.

Si cela doit fonctionner avec la chaîne vide, 9 caractères:

{{+}*}0if

Merci à @PeterTaylor d'avoir fourni une version alternative à 6 caractères qui fonctionne avec une chaîne vide:

0\{+}/
Poignée de porte
la source
Ne fonctionne pas sur la chaîne vide.
Howard
@Howard Bon point; édité.
Poignée de porte
0\{+}/prend en charge la chaîne vide
Peter Taylor
1
@ Doorknob désolé pour la question stupide, comment saisir des données? J'utilise golfscript.apphb.com
Knerd
2
@immibid Un cyclope avec un œil aux formes étranges. :-P (ou, dans GolfScript, la face "swap-and-add-each"!)
Poignée de porte
7

APL (8)

+/⎕UCS⍞

Explication:

  • +/ somme de
  • ⎕UCS valeurs unicode de
  • saisie de caractères
marinus
la source
Quel serait le résultat Hello World!?
Knerd
@Knerd: 1085. Ce ne serait pas correct s'il donnait une autre sortie. Il additionne les valeurs des points de code Unicode des caractères.
marinus
ok, je n'ai pas eu les moyens;)
Knerd
1
@knerd: signifie lire une ligne du clavier
marinus
Connaissez-vous un interprète APL gratuit?
Knerd
6

Haskell 36

main=interact$show.sum.map fromEnum
gxtaillon
la source
D'où lit-il le texte?
Knerd
stdin. $ printf "Hello World!" | ./charsum
gxtaillon
ok, je ne pouvais pas le faire fonctionner sur ma machine Windows, je vais l'essayer sur le rpi quand je serai à la maison
Knerd
Lorsque j'exécute votre code, je reçois simplement la chaîne "Hello World!" comme sortie. Voici ma ligne de commande:ECHO "Hello World! | ghci charsum.hs
Knerd
1
utiliser interactet showau lieu de getContents>>=print:main=interact$show.sum.map fromEnum
Flonk
6

Outils Shell + GNU, 29 octets

echo `od -An -tuC`|tr \  +|bc

Prend l'entrée de stdin:

$ printf "%s" 'Hello World!' | ./addchars.sh 
1085
$ 

Score propre: 2385


c, 52 octets

c;main(p){while(~(p=getchar()))c+=p;printf("%d",c);}

Compiler avec (quelques avertissements produits):

gcc addchars.c -o addchars

Prend l'entrée de stdin:

$ printf "%s" 'Hello World!' | ./addchars 
1085 $ 

Score propre: 4354

Traumatisme numérique
la source
C'est une excellente réponse. CodeBlocks avec le compilateur GNU se plaint toujours si les variables n'ont pas de type, par exemple int c, main (int p). Je pense donc que cela devrait être inclus dans votre réponse.
bacchusbeale
@bacchusbeale J'ai ajouté une note sur les avertissements de compilation, mais je pense que c'est généralement normal pour le golf en c. Tant que le code se compile et s'exécute comme prévu, les avertissements peuvent être ignorés. Voir codegolf.stackexchange.com/a/2230/11259 et codegolf.stackexchange.com/a/2204/11259 . Bien sûr, le code de production est une toute autre affaire.
Digital Trauma
@DigitalTrauma, tous ces espaces sont-ils réellement nécessaires? Le Shell ne peut-il pas ignorer les espaces et utiliser le - pour marquer de nouveaux paramètres?
Ashwin Gupta
@AshwinGupta Parlez-vous de la odcommande? od -AntuCne fait pas la même chose que od -An -tuC.
Digital Trauma
@DigitalTrauma ouais je l'étais. Je voulais dire que vous ne pouviez pas faire od-An-tuCouod -An-tuC
Ashwin Gupta
6

Javascript ( ES6 ) 51

alert([...prompt(x=0)].map(y=>x+=y.charCodeAt())|x)
nderscore
la source
@nderscore Pouvez-vous expliquer ce que le fait ...avant prompt? Est-ce une nouvelle chose ES6 ou est-ce pré-ES6?
WallyWest
1
@WallyWest Cela s'appelle un opérateur de propagation et cela fait partie du projet ES6.
nderscore
@nderscore Donc, si je comprends la syntaxe de l'opérateur d'étalement, votre utilisation de [...prompt(x=0)]a pris l'invite avec une valeur par défaut de 0 (qui sera utilisée plus tard dans la somme), et applique cette entrée comme un tableau de caractères ... ? Laquelle serait techniquement la même chose prompt(x=0).split(""), non?
WallyWest
1
@WallyWest prompt(x=0) signifie "mettre x à 0, appeler promptavec la valeur de mettre x à 0", c'est-à-dire 0. Ce serait équivalent à écrire(x=0,prompt(x))
Cyoce
6

gs2 , 1 octet

d

d( 0x64/ sum), bien sûr, résume tous les octets en entrée standard.

Lynn
la source
5

Python 3 - 28 octets

print(sum(map(ord,input())))

Exemple d'exécution:

$ ./sum_string.py <<< 'Hello World!'
1085

Obtient l'entrée de stdin, maps la ordfonction pour obtenir la valeur ASCII de chaque caractère, sums it et prints.

métro monorail
la source
Ninja'd, j'ai eu exactement la même idée. +1 pour cela.
seequ
@TheRare Moi aussi, même si le mien était plus long, car j'ai utilisé Python 2.7. Je rouille;)
ɐɔıʇǝɥʇuʎs
@Synthetica J'utilise toujours Python 2.7, sur lequel la réponse aurait étéprint sum(map(ord,raw_input()))
seequ
1
@TheRare Quelle était ma réponse exacte;)
ɐɔıʇǝɥʇuʎs
Nitpicking ici, mais vous pouvez l'améliorer en changeant map(ord,input())en input().encode(). Les objets en octets peuvent toujours être additionnés et ils restent de la même longueur.
cjfaure
5

Assemblage 8086 (16 bits) - 47 41 octets

Le contenu du test.comfichier est:

98 01 c3 b4 01 cd 21 3c 0d 75 f5 89 c7 c6 05 24
89 d8 b1 0a 4f 31 d2 f7 f1 80 ca 30 88 15 09 c0
75 f2 89 fa b4 09 cd 21 c3

Le travail réel est effectué dans les 11 premiers octets; J'ai besoin du reste pour imprimer le résultat en notation décimale.

Code source (donne en entrée à l' debug.comassembleur DOS ):

a
; input the string; count the sum
    cbw
    add bx, ax
    mov ah, 1
    int 21
    cmp al, d
    jne 100
; Prepare for output: stuff an end-of-line marker
    mov di, ax
    mov [di], byte 24
    mov ax, bx
    mov cl, a
; 114
; Divide by 10; write digits to buffer
    dec di
    xor dx, dx
    div cx
    or  dl, 30
    mov [di], dl
    or  ax, ax
    jne 114
; Print the string
    mov dx, di
    mov ah, 9
    int 21
    ret

rcx 29
n test.com
w
q

Quelques notes sur le code:

  • Ne gère qu'une seule ligne (jusqu'au caractère de fin de ligne 13); se bloque si aucune fin de ligne
  • Seuls les caractères 7 bits sont pris en charge (sinon les résultats sont incorrects)
  • Sorties 0 pour entrée vide
  • Impossible de gérer une sortie supérieure à 64 Ko
  • L'instruction à l'adresse 0x10d se remplace (pure coïncidence)
  • Doit utiliser des émulateurs DOS comme DosBox pour assembler et exécuter ce programme
anatolyg
la source
Comment pouvez-vous comprendre cela? oO
Knerd
5

CJam, 3 octets (somme 260)

q1b

Vous pouvez l' essayer en ligne .
Merci jimmy23013 d'avoir aidé à couper 2 personnages :)

Explication:

q     read the input into a string  
1b    convert from base 1, treating each character as its numeric value
aditsu
la source
1
q1best plus court.
jimmy23013
4

Befunge98, 6 octets, somme: 445

2j@.~+

Tout interprète devrait être bien. J'utilise CCBI .

Utilisez comme suit:

printf 'Hello World!' | ccbi calc.fg

Fonctionne pour les caractères multi-octets et les chaînes vides.

Explication

  • 2j- sautez par-dessus les deux instructions suivantes ( @et .- voir ci-dessous)
  • ~ - mettre le prochain caractère sur la pile
  • +- ajoutez la valeur de code du nouveau caractère à la somme actuelle. Le pointeur d'instructions revient au début et le cycle se répète
  • quand il ~rencontre un EOF il inverse la direction du pointeur et les deux instructions "cachées" sont exécutées:
  • . - imprimer la somme
  • @ - sortie
har-wradim
la source
4

Rubis, 13 12 octets

p~9+gets.sum

sumest une fonction intégrée qui additionne les caractères d'une chaîne. Soustrait 10 pour tenir compte de la nouvelle ligne à la fin de getsla valeur de retour.

(Modifié 4 ans plus tard pour changer x-10en ~9+x... la valeur de ~9is -10, mais il nous permet de supprimer l'espace entre pet son argument, en économisant un octet.)

Poignée de porte
la source
Je ne connais pas du tout Ruby, pourriez-vous expliquer votre code s'il vous plaît?
Knerd
1
gets est une fonction qui lit une chaîne depuis la norme jusqu'à ce qu'une nouvelle ligne soit lue, elle retourne une chaîne. String # sum ajoute les valeurs de chaque caractère, ce qui renvoie un Fixnum. Fixnum # - n'est qu'une soustraction. pest une méthode de sortie de la valeur de débogage de quelque chose sur une ligne.
Kyle Smith
2

PowerShell - 27

[char[]]$args[0]|measure -s

Exemple

> SumChars.ps1 'Hello World!'

Count    : 12
Average  : 
Sum      : 1085
Maximum  : 
Minimum  : 
Property : 
Rynant
la source
26 si vous utilisez [char[]]"$args"|measure -stant qu'il n'y a qu'une seule entrée $ arg.
TessellatingHeckler
2

Julia - 11 7 caractères, somme résultante = 943 536

Puisque la question permet à l'entrée de provenir de la source que vous voulez, je choisis une variable existante. Supposons que Acontient la chaîne que nous souhaitons évaluer.

sum(A)1

En fin de compte, vous pouvez additionner directement la chaîne, et elle évaluera ... cependant, en raison de la façon dont la sommation des caractères est gérée, s'il y a un nombre impair de caractères dans la chaîne, elle produira un caractère, plutôt qu'un entier quelconque. En tant que tel, nous le forçons à convertir en int en multipliant par 1.

Ancienne version:

sum(A.data)

Sortira dans une notation hexadécimale (si la somme est inférieure à 256, ce sera 0x??, sinon ce sera 8 octets 0x????????). S'il est utilisé dans le code où le résultat est utilisé, il fonctionnera comme n'importe quel autre numéro (c'est comme ça que Julia affiche les entiers non signés).

Pour voir la valeur du résultat en décimal, mettez ce qui précède dans int(), comme dans int(sum(A.data)).

Pour toute personne qui ne connaît pas Julia, vous attribuez Aexactement la même manière que vous effectuez les autres affectations aux variables. Alors, A="Hello World!"ou A="sum(n.data)". Dans le cas où vous devez saisir des caractères "ou ', il existe plusieurs options, dont la plus simple (car elle évite d'avoir besoin de connaître les nuances des littéraux de chaîne Julia) est A=readline(), suivie simplement en tapant la chaîne dans STDIN (won ' t gérer les nouvelles lignes, cependant). La séquence d'échappement pour newline est, comme d'habitude, \nmais je ne pense pas que vous puissiez l'utiliser avec readline ().

Glen O
la source
+1 pour la putain de solution intelligente ^^ Pourriez-vous poster, comment attribuer la valeur de test à la variable n? Je ne connais pas du tout Julia;)
Knerd
@Knerd - Je l'ai édité dans. J'espère que ça aide.
Glen O
Super merci. J'essaie de le tester plus tard :)
Knerd
Changement mineur - variable commutée de nà Apour réduire la somme résultante de 988 à 943.
Glen O
OK, changement beaucoup plus important - j'ai réalisé que vous pouvez additionner la chaîne directement, plutôt que d'extraire les caractères avec .data; mais parce que ce sont des personnages, ils produisent un résultat de caractère pour un nombre impair de caractères. La multiplication par 1 corrige cela.
Glen O
2

K5, 2 octets (fonction), 5 octets (programme)

Une fonction

+/

Programme

+/0:`

Je ne sais pas si K5 a été créé avant ou après la publication de ce défi. Peu importe ... C'EST IMPRESSIONNANT !!

En K5, si vous effectuez des opérations arithmétiques sur des chaînes, il convertit les caractères en leurs codes ASCII. Donc, cela utilise simplement l'opérateur sum +/(en fait, c'est plus + plus).

kirbyfan64sos
la source
2

Matlab / Octave 4 octets (bonus: 405)

Ce code est une fonction anonyme, qui fait le travail, il prendra une chaîne et renverra le nombre requis.

@sum
flawr
la source
Je ne suis pas sûr de la gs2réponse, mais au moins avec la même approche que la réponse Julia, je dois quand même écrire sum(A). Je pense que sumseul n'est pas ok (ne serait même pas un code valide =).
flawr
2

Go (59 caractères)

func d(s string)(t int){for _,x:=range s{t+=int(x)};return}

Tout dans Go est utf8 par défaut. Le codetext en `délimètres parcourus lui-même donne une sortie de: 5399.

voutasaurus
la source
Je dois dire que je suis plutôt surpris qu'il n'y ait pas math.Sumd'utilisation avec mapou similaire
chat
2

Jolf, 2 octets (non concurrent)

Essayez-le ici!

ui
u  sum of
 i  the input string

Umm ... Je ne sais pas quoi dire d'autre.

Conor O'Brien
la source
2

Gol> <> , 4 octets (non concurrents)

Remarque: cette langue est plus récente que le défi.

iEh+
randomra
la source
Est-il prononcé comme "Golfish?"
chat
@cat Oui, c'est du golf.
randomra
@randomra est-ce "gol • fish" ou "golf • ish"? Comme dans un poisson avec gol, ou quelque chose comme le golf?
Cyoce
2

Javascript ES6, 41 octets

_=>[..._].map(y=>x+=y.charCodeAt(),x=0)|x

Merci à @ETHproductions pour 2 octets enregistrés!

Mama Fun Roll
la source
1
Et alors _=>[..._].map(y=>x+=y.charCodeAt(),x=0)|x?
ETHproductions
2

Python, 24 octets

C'est plus court que n'importe quelle solution Python jusqu'à présent: une fonction anonyme sans nom, qui prend la chaîne en argument et retourne la somme.

lambda x:sum(x.encode())

Essayez-le en ligne!

Tout d'abord, le x.encode()transforme en bytesobjet. Alors,sum ajoute les valeurs de code de caractère. Comme il s'agit d'une fonction lambda, la valeur est renvoyée implicitement.

De plus, on pourrait avoir lambda x:sum(map(ord,x))pour le même nombre d'octets.

FlipTack
la source
2

SML, 42 36

Il suffit d'ajouter une autre langue.

fun$x=foldl op+0(map ord(explode x))

Convertit String en tableau char, calcule le nombre ascii de chaque valeur et calcule la somme de tous les nombres ascii.

quelqu'un
la source
1
Vous pouvez supprimer certains espaces et le premier ;. 36 octets: tio.run/##DcpBCoAgEAXQq0zRQomiC7ivdYuWEWgRfB2xKby9uXzwHo/…
Laikoni
1

C 32

f(char*s){return*s?*s+f(s+1):0;}
être
la source
main(int argc,char **argv){return(argc?main(0,&(argv[1])):(**argv?**argv+main(0,argv)+((*argv)++?0:0):0));}(107 caractères) bien qu'il ignore le premier caractère pour une raison quelconque. De plus, les codes de sortie POSIX ne sont que de 8 bits; en bash, echo $?.
les règles étaient un peu larges donc je n'ai pas utilisé main. je vais peut
bebe
@bebe j'ai un peu changé les règles, pour clarifier ce qui est nécessaire;)
Knerd
1

D (fonction: 60)

Certainement pas là-dedans pour le gagner.

En supposant qu'il n'a pas besoin d'être un programme complet

int c(string i){int s;foreach(e;i){s+=cast(int)e;}return s;}

Appelé comme ça

void main ()
{
    import std.stdio;
    auto hw = "Hello World!";
    writefln("%s = %d", hw, c(hw));
}

Production:

Hello World! = 1085

D (programme: 133)

Ne compte pas les sauts de ligne.

void main(){import std.algorithm,std.stdio;stdin.byLine.map!((a){int s;foreach(e;a){s+=cast(int)e;}return s;}).reduce!"a+b".writeln;}

Avec plus d'espace et des noms de variable plus longs pour plus de lisibilité

void main () {
    import std.algorithm, std.stdio;

    stdin.byLine
        .map!((line) {
                int sum;
                foreach (ch; line) {
                    sum += cast(int)ch;
                }
                return sum;
            })
        .reduce!"a+b"
        .writeln;
}

Pour prendre en charge les sauts de ligne dans l'entrée, je pourrais utiliser byLine(KeepTerminator.yes)- la bonne façon, pour 20 caractères - ou ajouter un '\n'à ma ligne - qui rompt l'entrée sur une seule ligne et peut donner la mauvaise somme sur Windows à cause de CRLF, pour 18 caractères.

Hugo Dubé
la source
+1 pour avoir publié même si vous savez que vous ne gagnerez pas
Knerd
1

JavaScript (ES6) 54 58

alert([].reduce.call(prompt(),(v,c)=>v+c.charCodeAt(0),0))

54 octets grâce à nderscore :

alert([...prompt()].reduce((v,c)=>v+c.charCodeAt(),0))
core1024
la source
Fonctionne bien, je l'ai essayé maintenant sur es6fiddle.net
Knerd
Vous pouvez simplement utiliser Firefox;)
core1024
1
J'étais au travail donc: D
Knerd
1
54:alert([...prompt()].reduce((v,c)=>v+c.charCodeAt(),0))
nderscore
1
alert([...prompt(x=0)].map(y=>x+=y.charCodeAt())|x)
Je suis
1

Delphi ( 87 83)

function x(s:string):int64;var c:char;begin x:=0;for c in s do x:=result+ord(c)end;

Non golfé

function x(s:string):int64;
var
  c:char;
begin
  x:=0;
  for c in s do
    x:=result+ord(c)
end;

Boucle en Sajoutant la ordvaleur du caractère au résultat. où x == résultat

Modifications:

4 caractères enregistrés en passant à int64 et en modifiant l'ajout à la somme.

Teun Pronk
la source
Avez-vous une version gratuite de Delphi (insérez votre version ici) disponible?
Knerd
Hm .. Pas vraiment désolé. Mais je peux expliquer ce qui se passe sans golf et faire quelques tests si vous le souhaitez. Pascal gratuit a plus ou moins la même syntaxe, vous pouvez donc le faire.
Teun Pronk
Ok, je vais vérifier ça.
Knerd
1

k (8 caractères)

+/6h$0:0

Traduction Q

sum `int$read0 0

Valeur bonus:

k)+/6h$0:0
+/6h$0:0
438i
skeevey
la source
1

J (7)

Si proche, mais si loin ... Eh bien, je suppose que 7 est assez décent, car cette réponse accepte également les chaînes vides. (Je fonde mon utilisation d'une variable comme entrée sur la phrase from a file, stdin or whatever)

+/a.i.b

Explication:

a.

┌┬┐├┼┤└┴┘│─ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������

a. contient tous les caractères ASCII.

   'people' i. 'pow'
0 2 6

x i. yest similaire à celui de python [x.index(i) for i in y].

   a. i. 'Hello World!'
72 101 108 108 111 32 87 111 114 108 100 33

À cet effet, a. i. yconvertit yen un tableau de ses valeurs ASCII

   +/1 2 3 4 5 6
21

+/est comme sum: +/1 2 3 4 5 6signifie1+2+3+4+5+6

   +/ a. i. 'Hello World!'
1085

Le tout en action

Pour le bonus:

   b=:'+/a.i.b'
   +/a.i.b
482

Pas mal, je suppose.

   b=:'0\{+}/'
   +/a.i.b
478

Bon sang.

   A=:'+/a.i.A'
   +/a.i.A
449

Merci @algorithmshark

    A=:'+/3 u:A'
    +/3 u:A
413

Merci @marinus

ɐɔıʇǝɥʇuʎs
la source
+1 pour la grande explication. Une petite question, où puis-je mieux exécuter J?
Knerd
1
@Knerd Des créateurs ( jsoftware.com ) Je suppose que je ne connais aucun interprète en ligne. (Fait amusant: ils ont une console officielle pour Android.) Jsoftware.com/download/j801
ɐɔıʇǝɥʇuʎs
@Synthectica C'est cool: D Maintenant j'ai besoin d'un smartphone Android: P
Knerd
Le changement bde nom Adonne un score de 449.
algorithmshark
@algorithmshark Oh, c'est vrai! Je vais réclamer cette étoile pour l'instant;)
ɐɔıʇǝɥʇuʎs
1

R, 35 caractères (somme de 3086) 26 octets (somme de 2305)

sum(utf8ToInt(readline()))

readline()est un caractère plus long que scan(,"")mais scandivise l'entrée par défaut sur les espaces.

Usage:

> sum(utf8ToInt(readline()))
Hello World!
[1] 1085
> sum(utf8ToInt(readline()))
sum(utf8ToInt(readline()))
[1] 2305
> sum(utf8ToInt(readline()))
q/%8hnp>T%y?'wNb\},9krW &D9']K$n;l.3O+tE*$*._B^s!@k\&Cl:EO1zo8sVxEvBxCock_I+2o6 yeX*0Xq:tS^f)!!7=!tk9K<6#/E`ks(D'$z$\6Ac+MT&[s[]_Y(`<g%"w%cW'`c&q)D$0#C$QGf>?A$iawvc,}`9!('`c&q)D$0#C$QGf>?A$iawvc,}`9!(
[1] 14835
plannapus
la source
1

Japt , 6 octets (non concurrent)

Cette réponse n'est pas en concurrence car Japt a été créé après la publication de ce défi.

U¬mc x

Assez simple. Essayez-le en ligne!

Comment ça fonctionne

U¬mc x  // Implicit: U = input string
U¬      // Split U into chars.
  mc    // Map each item to its char code.
     x  // Sum.
        // Implicit: output last expression
ETHproductions
la source
Out of curiosity, why didn't you assign ¬ to a negation of some sort?
Conor O'Brien
@CᴏɴᴏʀO'Bʀɪᴇɴ Because I was in a hurry and just assigned them as I saw need, without planning ahead. I have a set that makes more sense ready to be rolled out, by changing one line of code, but I'm leery about that because it'd invalidate nearly every existing answer.
ETHproductions
That's an easy fix. Add a conditional to the header (e.g., url/interpreter.html#new=1); anything without it uses the old character set, and anything with it uses the new character set.
Conor O'Brien
@CᴏɴᴏʀO'Bʀɪᴇɴ Thanks, I'll consider that.
ETHproductions
1

PlatyPar, 2 bytes (non-competing)

us

Try it online!

u generates an array of all charcode values in the input string, and s finds their sum.

When run on itself, it returns 232.

This is similar to Conor's Jolf answer, except that I use a byte to convert the string into an array of character codes (which is implicit in Jolf), whereas he uses a byte to retrieve the input (which is implicit in PlatyPar).

Cyoce
la source