How to verbalise code in Mathematica? [closed]Extract DownValues used in function evaluationHow do I plot a variable against another variable in Mathematica?I cannot execute this codeGenerating multiple choice questions with a random list of operations and rational numbersIs Mathematica worth it for me?Mathematica Progression Path from Apprentice to GuruHow to visualise Mathematica code and how to become a better coderHighschool teachers based in Australia using Mathematica ?Mathematica problem- consecutive integerswhy my code doesn't work
Convert Numbers To Emoji Math
Is there precedent or are there procedures for a US president refusing to concede to an electoral defeat?
What's the 2-minute timer on mobile Deutsche Bahn tickets?
Reverse ColorFunction or ColorData
How can I finally understand the confusing modal verb "мочь"?
My large rocket is still flipping over
Python 3 - simple temperature program version 1.3
Gerrymandering Puzzle - Rig the Election
What does the coin flipping before dying mean?
How long did it take Captain Marvel to travel to Earth?
Problem with estimating a sequence with intuition
How is trade in services conducted under the WTO in the absence of the Doha conclusion?
Two denim hijabs
How long does it take a postcard to get from USA to Germany?
Was there a dinosaur-counter in the original Jurassic Park movie?
How important are good looking people in a novel/story?
What would happen if I combined this polymer and this metal (assuming I can)
Can a player choose to add detail and flavor to their character's spells and abilities?
Old story about a creature laying pyramid shaped eggs on Mars
Is there a reason why Turkey took the Balkan territories of the Ottoman Empire, instead of Greece or another of the Balkan states?
What does のそ mean on this picture?
What are the requirements for a river delta to form?
How to say something covers all the view up to the horizon line?
Why would a military not separate its forces into different branches?
How to verbalise code in Mathematica? [closed]
Extract DownValues used in function evaluationHow do I plot a variable against another variable in Mathematica?I cannot execute this codeGenerating multiple choice questions with a random list of operations and rational numbersIs Mathematica worth it for me?Mathematica Progression Path from Apprentice to GuruHow to visualise Mathematica code and how to become a better coderHighschool teachers based in Australia using Mathematica ?Mathematica problem- consecutive integerswhy my code doesn't work
$begingroup$
How do you read an expression like?
x + y /. x -> 2
Looking up /. and -> in Mathematica docs it says ReplaceAll and Rule. But you would not pronounce the expression above as
x plus y replace all x rule 2.
Instead you would say something like
x plus y where x goes to two.
The operators /. and -> are just two examples, there are a lot of others in Mathematica. Is there some resource that addresses pronunciations in Mathematica.
education
$endgroup$
closed as primarily opinion-based by Michael E2, m_goldberg, bbgodfrey, AccidentalFourierTransform, MarcoB Apr 29 at 12:44
Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.
|
show 4 more comments
$begingroup$
How do you read an expression like?
x + y /. x -> 2
Looking up /. and -> in Mathematica docs it says ReplaceAll and Rule. But you would not pronounce the expression above as
x plus y replace all x rule 2.
Instead you would say something like
x plus y where x goes to two.
The operators /. and -> are just two examples, there are a lot of others in Mathematica. Is there some resource that addresses pronunciations in Mathematica.
education
$endgroup$
closed as primarily opinion-based by Michael E2, m_goldberg, bbgodfrey, AccidentalFourierTransform, MarcoB Apr 29 at 12:44
Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.
$begingroup$
@C.E Of course there must be several ways to pronounce an expression, depending on the context. I am not after one true way to pronounce, but more a list of examples how you could pronounce some not obvious expressions. Maybe no one thinks this is worthwhile and that's OK, but if anybody has discussed this I would like a link to it.
$endgroup$
– Bob Ueland
Apr 27 at 9:14
$begingroup$
This is a topic in any programming language, as they have not been designed to become acoustic streams. Are you primarily interested in communicating vocally to other people, or are you interested in clarifying your inner monologue while working on code? Some of us are more visual-oriented and a symbol like->
never makes it beyond the visual stage, never becomes an acoustic event.
$endgroup$
– Roman
Apr 27 at 9:16
$begingroup$
@Roman I am primarily interested in communicating vocally to other people. When it comes to other programming languages there is some discussion, see for instance stackoverflow.com/questions/7746894/…
$endgroup$
– Bob Ueland
Apr 27 at 9:23
$begingroup$
I know that pronunciations are opinion based and that there are no true answers, but still it makes sense to me that have some way of communication vocally to other people when the need arises, so the discussion in Haskell was of great help to me, even though it is opinion based.
$endgroup$
– Bob Ueland
Apr 27 at 9:31
$begingroup$
How about you get a list started, like the Haskell example, and everybody chips in? Something like a table with three columns: "symbol", "pronounciations" (many lines), and "voters" where everybody can put in their name to vote for a particular pronounciation.
$endgroup$
– Roman
Apr 27 at 10:13
|
show 4 more comments
$begingroup$
How do you read an expression like?
x + y /. x -> 2
Looking up /. and -> in Mathematica docs it says ReplaceAll and Rule. But you would not pronounce the expression above as
x plus y replace all x rule 2.
Instead you would say something like
x plus y where x goes to two.
The operators /. and -> are just two examples, there are a lot of others in Mathematica. Is there some resource that addresses pronunciations in Mathematica.
education
$endgroup$
How do you read an expression like?
x + y /. x -> 2
Looking up /. and -> in Mathematica docs it says ReplaceAll and Rule. But you would not pronounce the expression above as
x plus y replace all x rule 2.
Instead you would say something like
x plus y where x goes to two.
The operators /. and -> are just two examples, there are a lot of others in Mathematica. Is there some resource that addresses pronunciations in Mathematica.
education
education
edited Apr 27 at 9:14
Carl Lange
5,97911445
5,97911445
asked Apr 27 at 8:53
Bob UelandBob Ueland
395111
395111
closed as primarily opinion-based by Michael E2, m_goldberg, bbgodfrey, AccidentalFourierTransform, MarcoB Apr 29 at 12:44
Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.
closed as primarily opinion-based by Michael E2, m_goldberg, bbgodfrey, AccidentalFourierTransform, MarcoB Apr 29 at 12:44
Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.
$begingroup$
@C.E Of course there must be several ways to pronounce an expression, depending on the context. I am not after one true way to pronounce, but more a list of examples how you could pronounce some not obvious expressions. Maybe no one thinks this is worthwhile and that's OK, but if anybody has discussed this I would like a link to it.
$endgroup$
– Bob Ueland
Apr 27 at 9:14
$begingroup$
This is a topic in any programming language, as they have not been designed to become acoustic streams. Are you primarily interested in communicating vocally to other people, or are you interested in clarifying your inner monologue while working on code? Some of us are more visual-oriented and a symbol like->
never makes it beyond the visual stage, never becomes an acoustic event.
$endgroup$
– Roman
Apr 27 at 9:16
$begingroup$
@Roman I am primarily interested in communicating vocally to other people. When it comes to other programming languages there is some discussion, see for instance stackoverflow.com/questions/7746894/…
$endgroup$
– Bob Ueland
Apr 27 at 9:23
$begingroup$
I know that pronunciations are opinion based and that there are no true answers, but still it makes sense to me that have some way of communication vocally to other people when the need arises, so the discussion in Haskell was of great help to me, even though it is opinion based.
$endgroup$
– Bob Ueland
Apr 27 at 9:31
$begingroup$
How about you get a list started, like the Haskell example, and everybody chips in? Something like a table with three columns: "symbol", "pronounciations" (many lines), and "voters" where everybody can put in their name to vote for a particular pronounciation.
$endgroup$
– Roman
Apr 27 at 10:13
|
show 4 more comments
$begingroup$
@C.E Of course there must be several ways to pronounce an expression, depending on the context. I am not after one true way to pronounce, but more a list of examples how you could pronounce some not obvious expressions. Maybe no one thinks this is worthwhile and that's OK, but if anybody has discussed this I would like a link to it.
$endgroup$
– Bob Ueland
Apr 27 at 9:14
$begingroup$
This is a topic in any programming language, as they have not been designed to become acoustic streams. Are you primarily interested in communicating vocally to other people, or are you interested in clarifying your inner monologue while working on code? Some of us are more visual-oriented and a symbol like->
never makes it beyond the visual stage, never becomes an acoustic event.
$endgroup$
– Roman
Apr 27 at 9:16
$begingroup$
@Roman I am primarily interested in communicating vocally to other people. When it comes to other programming languages there is some discussion, see for instance stackoverflow.com/questions/7746894/…
$endgroup$
– Bob Ueland
Apr 27 at 9:23
$begingroup$
I know that pronunciations are opinion based and that there are no true answers, but still it makes sense to me that have some way of communication vocally to other people when the need arises, so the discussion in Haskell was of great help to me, even though it is opinion based.
$endgroup$
– Bob Ueland
Apr 27 at 9:31
$begingroup$
How about you get a list started, like the Haskell example, and everybody chips in? Something like a table with three columns: "symbol", "pronounciations" (many lines), and "voters" where everybody can put in their name to vote for a particular pronounciation.
$endgroup$
– Roman
Apr 27 at 10:13
$begingroup$
@C.E Of course there must be several ways to pronounce an expression, depending on the context. I am not after one true way to pronounce, but more a list of examples how you could pronounce some not obvious expressions. Maybe no one thinks this is worthwhile and that's OK, but if anybody has discussed this I would like a link to it.
$endgroup$
– Bob Ueland
Apr 27 at 9:14
$begingroup$
@C.E Of course there must be several ways to pronounce an expression, depending on the context. I am not after one true way to pronounce, but more a list of examples how you could pronounce some not obvious expressions. Maybe no one thinks this is worthwhile and that's OK, but if anybody has discussed this I would like a link to it.
$endgroup$
– Bob Ueland
Apr 27 at 9:14
$begingroup$
This is a topic in any programming language, as they have not been designed to become acoustic streams. Are you primarily interested in communicating vocally to other people, or are you interested in clarifying your inner monologue while working on code? Some of us are more visual-oriented and a symbol like
->
never makes it beyond the visual stage, never becomes an acoustic event.$endgroup$
– Roman
Apr 27 at 9:16
$begingroup$
This is a topic in any programming language, as they have not been designed to become acoustic streams. Are you primarily interested in communicating vocally to other people, or are you interested in clarifying your inner monologue while working on code? Some of us are more visual-oriented and a symbol like
->
never makes it beyond the visual stage, never becomes an acoustic event.$endgroup$
– Roman
Apr 27 at 9:16
$begingroup$
@Roman I am primarily interested in communicating vocally to other people. When it comes to other programming languages there is some discussion, see for instance stackoverflow.com/questions/7746894/…
$endgroup$
– Bob Ueland
Apr 27 at 9:23
$begingroup$
@Roman I am primarily interested in communicating vocally to other people. When it comes to other programming languages there is some discussion, see for instance stackoverflow.com/questions/7746894/…
$endgroup$
– Bob Ueland
Apr 27 at 9:23
$begingroup$
I know that pronunciations are opinion based and that there are no true answers, but still it makes sense to me that have some way of communication vocally to other people when the need arises, so the discussion in Haskell was of great help to me, even though it is opinion based.
$endgroup$
– Bob Ueland
Apr 27 at 9:31
$begingroup$
I know that pronunciations are opinion based and that there are no true answers, but still it makes sense to me that have some way of communication vocally to other people when the need arises, so the discussion in Haskell was of great help to me, even though it is opinion based.
$endgroup$
– Bob Ueland
Apr 27 at 9:31
$begingroup$
How about you get a list started, like the Haskell example, and everybody chips in? Something like a table with three columns: "symbol", "pronounciations" (many lines), and "voters" where everybody can put in their name to vote for a particular pronounciation.
$endgroup$
– Roman
Apr 27 at 10:13
$begingroup$
How about you get a list started, like the Haskell example, and everybody chips in? Something like a table with three columns: "symbol", "pronounciations" (many lines), and "voters" where everybody can put in their name to vote for a particular pronounciation.
$endgroup$
– Roman
Apr 27 at 10:13
|
show 4 more comments
2 Answers
2
active
oldest
votes
$begingroup$
Starting a brain dump of ideas, listening to my inner monologue. Please feel free to edit and add suggestions. Here is a list of most operators.
| sym | example | pronunciation | votes, comments, rants
|––––––|–––––––––––––|–––––––––––––––––––––––––––––––––––––|–––––––––––––––––––––––––
| :: | x::y | x says y |
| # | # | slot |
| ## | ## | all slots |
| & | x& | x end-of-function |
| % | % | previous output |
| : | x:_ | x-pattern |
| | | anything, call it x |
| /; | x_/;y | x-pattern that y |
| | | anything that y, call it x |
| ? | x_?yQ | x-pattern that is y |
| | | anything y, call it x |
| _ | x_ | x-pattern |
| | | anything, call it x |
| _ | x_y | x-pattern of type y |
| | | anything of type y, call it x |
| __ | x__ | x-patterns |
| | | any sequence, call it x |
| ___ | x___ | x-maybepatterns |
| | | any sequence, even empty, call it x |
| _. | x_. | x-defaultpattern |
| | | anything, call it x, with default |
| : | x_:y | x-pattern defaults to y |
| | | anything, call it x, with default y |
| .. | x.. | one or more x |
| ... | x... | zero or more x |
| | 1,2,3 | list of 1, 2, 3 |
| [[]] | x[[y]] | element y of x |
| ;; | x;;y;;z | from x to y in steps of z |
| == | x==y | x equal to y |
| != | x!=y | x not equal to y |
| === | x===y | x same as y |
| =!= | x=!=y | x not same as y |
| ++ | x++ | x and then increment it |
| ++ | ++x | x but increment it first |
| -- | x-- | x and then decrement it |
| -- | --x | x but decrement it first |
| [] | x[y] | x of y |
| | x[y,z] | x of y and z |
| @* | x@*y | x of y |
| // | x//y | x then do y |
| /* | x/*y | y of x |
| | x//y/*z | x then do y then do z |
| @ | x@y | x of y |
| ~ | x~f~y | f of x and y |
| /@ | x/@y | map x onto y |
| //@ | x//@y | mapall x onto y |
| | | map x onto all levels of y |
| @@ | x@@y | x-head on y |
| @@@ | x@@@y | map x-head onto y |
| -> | x->y | x becomes y |
| | | x goes to y |
| :> | x:>y | x will become y |
| | | x will go to y |
| /. | x/.y | x where y |
| //. | x//.y | x where repeatedly y |
| = | x=y | x is y |
| := | x:=y | x will be y |
| ^= | x[y]^=z | y remembers x[y] is z |
| ^:= | x[y]^:=z | y remembers x[y] will be z |
| /: | x/:y=z | x remembers y is z |
| /: | x/:y:=z | x remembers y will be z |
| . | x=. | x is cleared |
|––––––|–––––––––––––|–––––––––––––––––––––––––––––––––––––|–––––––––––––––––––
$endgroup$
$begingroup$
thank you for a nice beginning. I often pronounce x_ as "anything, call it x". I guess you could pronounce x__ as "any sequence, call it x". And maybe you could pronounce x___ as "any sequence including empty, call it x".
$endgroup$
– Bob Ueland
Apr 27 at 16:52
1
$begingroup$
As I spend a fair amount of time teaching Mathematica to students who have never done programming, having a list of terms to use for the language's typography - if only to be self-consistent - is very helpful.
$endgroup$
– bobthechemist
Apr 27 at 17:25
$begingroup$
@bobthechemist please feel free to add the way you would pronounce things to the list! I teach Mathematica too and would be keen to have a consistent list.
$endgroup$
– Roman
Apr 27 at 18:34
$begingroup$
Do you have _h in your table? It represents any expression having the h as its head. For instance f[x_Integer] :=... defines a function that takes any integer as a parameter. I would pronounce x_Integer as "any integer call it x".
$endgroup$
– Bob Ueland
Apr 27 at 19:39
$begingroup$
Yes @BobUeland I had extrapolated your earlier comment to includex_y
as "anything of type y, call it x".
$endgroup$
– Roman
Apr 27 at 21:37
add a comment |
$begingroup$
You could try using SpokenString
:
SpokenString[HoldForm[x + y /. x->2]]
"x plus y slash dot x goes to 2"
Addendum
If you don't mind messing with internal functions, it is possible to customize the output of SpokenString
. For this purpose, it is convenient to make use of my ExtractDownValues function reproduced below:
SetAttributes[ExtractDownValues, HoldAll]
ExtractDownValues[sym_[args__]] := ExtractDownValues[sym,args]
ExtractDownValues[sym_,args__] := Cases[
DownValues[sym],_[h_,_] /; MatchQ[Unevaluated[sym[args]],h]
]
The internal function that does most of the heavy lifting is SpokenStringDump`SSText
:
TracePrint[SpokenString[HoldForm[x + y /. x -> 2]], _SpokenStringDump`SSText]
SpokenStringDump`SSText[x+y/. x->2]
SpokenStringDump`SSText[x+y]
SpokenStringDump`SSText[x]
SpokenStringDump`SSText[y]
SpokenStringDump`SSText[2]
SpokenStringDump`SSText[x->2]
SpokenStringDump`SSText[x]
SpokenStringDump`SSText[2]
"x plus y slash dot x goes to 2"
Using ExtractDownValues
we find:
ExtractDownValues @ SpokenStringDump`SSText[x + y /. x -> 2]
HoldPattern[
SpokenStringDump`SSText[SpokenStringDump`a_ /. SpokenStringDump`b_]] :>
SpokenStringDump`SpeakQuantity[SpokenStringDump`a, ReplaceAll, True] ~~
" slash dot " ~~
If[ListQ[Unevaluated[SpokenStringDump`b]],
SpokenStringDump`SpeakListContents[SpokenStringDump`b],
SpokenStringDump`SpeakQuantity[SpokenStringDump`b, ReplaceAll, True]],
HoldPattern[
SpokenStringDump`SSText[SpokenStringDump`f_[SpokenStringDump`a___]]] :>
Module[SpokenStringDump`ans =
SpokenStringDump`SSText0[SpokenStringDump`f[SpokenStringDump`a]],
If[Head[SpokenStringDump`ans] =!= SpokenStringDump`SSText0 && !
MemberQ[SpokenStringDump`ans, $Failed, 0, 1], SpokenStringDump`ans,
SpokenStringDump`SSTextFallThrough[
Unevaluated[SpokenStringDump`f[SpokenStringDump`a]]]]]
Notice the " slash dot " string. So, modifying this downvalue to:
SpokenStringDump`SSText[a_ /. b_] := SpokenStringDump`SpeakQuantity[a,ReplaceAll,True] ~~
" where " ~~
If[ListQ[Unevaluated[b]],
SpokenStringDump`SpeakListContents[b],
SpokenStringDump`SpeakQuantity[b,ReplaceAll,True]
]
will produce:
SpokenString[HoldForm[x + y /. x->2]]
"x plus y where x goes to 2"
$endgroup$
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
Starting a brain dump of ideas, listening to my inner monologue. Please feel free to edit and add suggestions. Here is a list of most operators.
| sym | example | pronunciation | votes, comments, rants
|––––––|–––––––––––––|–––––––––––––––––––––––––––––––––––––|–––––––––––––––––––––––––
| :: | x::y | x says y |
| # | # | slot |
| ## | ## | all slots |
| & | x& | x end-of-function |
| % | % | previous output |
| : | x:_ | x-pattern |
| | | anything, call it x |
| /; | x_/;y | x-pattern that y |
| | | anything that y, call it x |
| ? | x_?yQ | x-pattern that is y |
| | | anything y, call it x |
| _ | x_ | x-pattern |
| | | anything, call it x |
| _ | x_y | x-pattern of type y |
| | | anything of type y, call it x |
| __ | x__ | x-patterns |
| | | any sequence, call it x |
| ___ | x___ | x-maybepatterns |
| | | any sequence, even empty, call it x |
| _. | x_. | x-defaultpattern |
| | | anything, call it x, with default |
| : | x_:y | x-pattern defaults to y |
| | | anything, call it x, with default y |
| .. | x.. | one or more x |
| ... | x... | zero or more x |
| | 1,2,3 | list of 1, 2, 3 |
| [[]] | x[[y]] | element y of x |
| ;; | x;;y;;z | from x to y in steps of z |
| == | x==y | x equal to y |
| != | x!=y | x not equal to y |
| === | x===y | x same as y |
| =!= | x=!=y | x not same as y |
| ++ | x++ | x and then increment it |
| ++ | ++x | x but increment it first |
| -- | x-- | x and then decrement it |
| -- | --x | x but decrement it first |
| [] | x[y] | x of y |
| | x[y,z] | x of y and z |
| @* | x@*y | x of y |
| // | x//y | x then do y |
| /* | x/*y | y of x |
| | x//y/*z | x then do y then do z |
| @ | x@y | x of y |
| ~ | x~f~y | f of x and y |
| /@ | x/@y | map x onto y |
| //@ | x//@y | mapall x onto y |
| | | map x onto all levels of y |
| @@ | x@@y | x-head on y |
| @@@ | x@@@y | map x-head onto y |
| -> | x->y | x becomes y |
| | | x goes to y |
| :> | x:>y | x will become y |
| | | x will go to y |
| /. | x/.y | x where y |
| //. | x//.y | x where repeatedly y |
| = | x=y | x is y |
| := | x:=y | x will be y |
| ^= | x[y]^=z | y remembers x[y] is z |
| ^:= | x[y]^:=z | y remembers x[y] will be z |
| /: | x/:y=z | x remembers y is z |
| /: | x/:y:=z | x remembers y will be z |
| . | x=. | x is cleared |
|––––––|–––––––––––––|–––––––––––––––––––––––––––––––––––––|–––––––––––––––––––
$endgroup$
$begingroup$
thank you for a nice beginning. I often pronounce x_ as "anything, call it x". I guess you could pronounce x__ as "any sequence, call it x". And maybe you could pronounce x___ as "any sequence including empty, call it x".
$endgroup$
– Bob Ueland
Apr 27 at 16:52
1
$begingroup$
As I spend a fair amount of time teaching Mathematica to students who have never done programming, having a list of terms to use for the language's typography - if only to be self-consistent - is very helpful.
$endgroup$
– bobthechemist
Apr 27 at 17:25
$begingroup$
@bobthechemist please feel free to add the way you would pronounce things to the list! I teach Mathematica too and would be keen to have a consistent list.
$endgroup$
– Roman
Apr 27 at 18:34
$begingroup$
Do you have _h in your table? It represents any expression having the h as its head. For instance f[x_Integer] :=... defines a function that takes any integer as a parameter. I would pronounce x_Integer as "any integer call it x".
$endgroup$
– Bob Ueland
Apr 27 at 19:39
$begingroup$
Yes @BobUeland I had extrapolated your earlier comment to includex_y
as "anything of type y, call it x".
$endgroup$
– Roman
Apr 27 at 21:37
add a comment |
$begingroup$
Starting a brain dump of ideas, listening to my inner monologue. Please feel free to edit and add suggestions. Here is a list of most operators.
| sym | example | pronunciation | votes, comments, rants
|––––––|–––––––––––––|–––––––––––––––––––––––––––––––––––––|–––––––––––––––––––––––––
| :: | x::y | x says y |
| # | # | slot |
| ## | ## | all slots |
| & | x& | x end-of-function |
| % | % | previous output |
| : | x:_ | x-pattern |
| | | anything, call it x |
| /; | x_/;y | x-pattern that y |
| | | anything that y, call it x |
| ? | x_?yQ | x-pattern that is y |
| | | anything y, call it x |
| _ | x_ | x-pattern |
| | | anything, call it x |
| _ | x_y | x-pattern of type y |
| | | anything of type y, call it x |
| __ | x__ | x-patterns |
| | | any sequence, call it x |
| ___ | x___ | x-maybepatterns |
| | | any sequence, even empty, call it x |
| _. | x_. | x-defaultpattern |
| | | anything, call it x, with default |
| : | x_:y | x-pattern defaults to y |
| | | anything, call it x, with default y |
| .. | x.. | one or more x |
| ... | x... | zero or more x |
| | 1,2,3 | list of 1, 2, 3 |
| [[]] | x[[y]] | element y of x |
| ;; | x;;y;;z | from x to y in steps of z |
| == | x==y | x equal to y |
| != | x!=y | x not equal to y |
| === | x===y | x same as y |
| =!= | x=!=y | x not same as y |
| ++ | x++ | x and then increment it |
| ++ | ++x | x but increment it first |
| -- | x-- | x and then decrement it |
| -- | --x | x but decrement it first |
| [] | x[y] | x of y |
| | x[y,z] | x of y and z |
| @* | x@*y | x of y |
| // | x//y | x then do y |
| /* | x/*y | y of x |
| | x//y/*z | x then do y then do z |
| @ | x@y | x of y |
| ~ | x~f~y | f of x and y |
| /@ | x/@y | map x onto y |
| //@ | x//@y | mapall x onto y |
| | | map x onto all levels of y |
| @@ | x@@y | x-head on y |
| @@@ | x@@@y | map x-head onto y |
| -> | x->y | x becomes y |
| | | x goes to y |
| :> | x:>y | x will become y |
| | | x will go to y |
| /. | x/.y | x where y |
| //. | x//.y | x where repeatedly y |
| = | x=y | x is y |
| := | x:=y | x will be y |
| ^= | x[y]^=z | y remembers x[y] is z |
| ^:= | x[y]^:=z | y remembers x[y] will be z |
| /: | x/:y=z | x remembers y is z |
| /: | x/:y:=z | x remembers y will be z |
| . | x=. | x is cleared |
|––––––|–––––––––––––|–––––––––––––––––––––––––––––––––––––|–––––––––––––––––––
$endgroup$
$begingroup$
thank you for a nice beginning. I often pronounce x_ as "anything, call it x". I guess you could pronounce x__ as "any sequence, call it x". And maybe you could pronounce x___ as "any sequence including empty, call it x".
$endgroup$
– Bob Ueland
Apr 27 at 16:52
1
$begingroup$
As I spend a fair amount of time teaching Mathematica to students who have never done programming, having a list of terms to use for the language's typography - if only to be self-consistent - is very helpful.
$endgroup$
– bobthechemist
Apr 27 at 17:25
$begingroup$
@bobthechemist please feel free to add the way you would pronounce things to the list! I teach Mathematica too and would be keen to have a consistent list.
$endgroup$
– Roman
Apr 27 at 18:34
$begingroup$
Do you have _h in your table? It represents any expression having the h as its head. For instance f[x_Integer] :=... defines a function that takes any integer as a parameter. I would pronounce x_Integer as "any integer call it x".
$endgroup$
– Bob Ueland
Apr 27 at 19:39
$begingroup$
Yes @BobUeland I had extrapolated your earlier comment to includex_y
as "anything of type y, call it x".
$endgroup$
– Roman
Apr 27 at 21:37
add a comment |
$begingroup$
Starting a brain dump of ideas, listening to my inner monologue. Please feel free to edit and add suggestions. Here is a list of most operators.
| sym | example | pronunciation | votes, comments, rants
|––––––|–––––––––––––|–––––––––––––––––––––––––––––––––––––|–––––––––––––––––––––––––
| :: | x::y | x says y |
| # | # | slot |
| ## | ## | all slots |
| & | x& | x end-of-function |
| % | % | previous output |
| : | x:_ | x-pattern |
| | | anything, call it x |
| /; | x_/;y | x-pattern that y |
| | | anything that y, call it x |
| ? | x_?yQ | x-pattern that is y |
| | | anything y, call it x |
| _ | x_ | x-pattern |
| | | anything, call it x |
| _ | x_y | x-pattern of type y |
| | | anything of type y, call it x |
| __ | x__ | x-patterns |
| | | any sequence, call it x |
| ___ | x___ | x-maybepatterns |
| | | any sequence, even empty, call it x |
| _. | x_. | x-defaultpattern |
| | | anything, call it x, with default |
| : | x_:y | x-pattern defaults to y |
| | | anything, call it x, with default y |
| .. | x.. | one or more x |
| ... | x... | zero or more x |
| | 1,2,3 | list of 1, 2, 3 |
| [[]] | x[[y]] | element y of x |
| ;; | x;;y;;z | from x to y in steps of z |
| == | x==y | x equal to y |
| != | x!=y | x not equal to y |
| === | x===y | x same as y |
| =!= | x=!=y | x not same as y |
| ++ | x++ | x and then increment it |
| ++ | ++x | x but increment it first |
| -- | x-- | x and then decrement it |
| -- | --x | x but decrement it first |
| [] | x[y] | x of y |
| | x[y,z] | x of y and z |
| @* | x@*y | x of y |
| // | x//y | x then do y |
| /* | x/*y | y of x |
| | x//y/*z | x then do y then do z |
| @ | x@y | x of y |
| ~ | x~f~y | f of x and y |
| /@ | x/@y | map x onto y |
| //@ | x//@y | mapall x onto y |
| | | map x onto all levels of y |
| @@ | x@@y | x-head on y |
| @@@ | x@@@y | map x-head onto y |
| -> | x->y | x becomes y |
| | | x goes to y |
| :> | x:>y | x will become y |
| | | x will go to y |
| /. | x/.y | x where y |
| //. | x//.y | x where repeatedly y |
| = | x=y | x is y |
| := | x:=y | x will be y |
| ^= | x[y]^=z | y remembers x[y] is z |
| ^:= | x[y]^:=z | y remembers x[y] will be z |
| /: | x/:y=z | x remembers y is z |
| /: | x/:y:=z | x remembers y will be z |
| . | x=. | x is cleared |
|––––––|–––––––––––––|–––––––––––––––––––––––––––––––––––––|–––––––––––––––––––
$endgroup$
Starting a brain dump of ideas, listening to my inner monologue. Please feel free to edit and add suggestions. Here is a list of most operators.
| sym | example | pronunciation | votes, comments, rants
|––––––|–––––––––––––|–––––––––––––––––––––––––––––––––––––|–––––––––––––––––––––––––
| :: | x::y | x says y |
| # | # | slot |
| ## | ## | all slots |
| & | x& | x end-of-function |
| % | % | previous output |
| : | x:_ | x-pattern |
| | | anything, call it x |
| /; | x_/;y | x-pattern that y |
| | | anything that y, call it x |
| ? | x_?yQ | x-pattern that is y |
| | | anything y, call it x |
| _ | x_ | x-pattern |
| | | anything, call it x |
| _ | x_y | x-pattern of type y |
| | | anything of type y, call it x |
| __ | x__ | x-patterns |
| | | any sequence, call it x |
| ___ | x___ | x-maybepatterns |
| | | any sequence, even empty, call it x |
| _. | x_. | x-defaultpattern |
| | | anything, call it x, with default |
| : | x_:y | x-pattern defaults to y |
| | | anything, call it x, with default y |
| .. | x.. | one or more x |
| ... | x... | zero or more x |
| | 1,2,3 | list of 1, 2, 3 |
| [[]] | x[[y]] | element y of x |
| ;; | x;;y;;z | from x to y in steps of z |
| == | x==y | x equal to y |
| != | x!=y | x not equal to y |
| === | x===y | x same as y |
| =!= | x=!=y | x not same as y |
| ++ | x++ | x and then increment it |
| ++ | ++x | x but increment it first |
| -- | x-- | x and then decrement it |
| -- | --x | x but decrement it first |
| [] | x[y] | x of y |
| | x[y,z] | x of y and z |
| @* | x@*y | x of y |
| // | x//y | x then do y |
| /* | x/*y | y of x |
| | x//y/*z | x then do y then do z |
| @ | x@y | x of y |
| ~ | x~f~y | f of x and y |
| /@ | x/@y | map x onto y |
| //@ | x//@y | mapall x onto y |
| | | map x onto all levels of y |
| @@ | x@@y | x-head on y |
| @@@ | x@@@y | map x-head onto y |
| -> | x->y | x becomes y |
| | | x goes to y |
| :> | x:>y | x will become y |
| | | x will go to y |
| /. | x/.y | x where y |
| //. | x//.y | x where repeatedly y |
| = | x=y | x is y |
| := | x:=y | x will be y |
| ^= | x[y]^=z | y remembers x[y] is z |
| ^:= | x[y]^:=z | y remembers x[y] will be z |
| /: | x/:y=z | x remembers y is z |
| /: | x/:y:=z | x remembers y will be z |
| . | x=. | x is cleared |
|––––––|–––––––––––––|–––––––––––––––––––––––––––––––––––––|–––––––––––––––––––
edited Apr 27 at 21:51
answered Apr 27 at 15:57
RomanRoman
7,31011235
7,31011235
$begingroup$
thank you for a nice beginning. I often pronounce x_ as "anything, call it x". I guess you could pronounce x__ as "any sequence, call it x". And maybe you could pronounce x___ as "any sequence including empty, call it x".
$endgroup$
– Bob Ueland
Apr 27 at 16:52
1
$begingroup$
As I spend a fair amount of time teaching Mathematica to students who have never done programming, having a list of terms to use for the language's typography - if only to be self-consistent - is very helpful.
$endgroup$
– bobthechemist
Apr 27 at 17:25
$begingroup$
@bobthechemist please feel free to add the way you would pronounce things to the list! I teach Mathematica too and would be keen to have a consistent list.
$endgroup$
– Roman
Apr 27 at 18:34
$begingroup$
Do you have _h in your table? It represents any expression having the h as its head. For instance f[x_Integer] :=... defines a function that takes any integer as a parameter. I would pronounce x_Integer as "any integer call it x".
$endgroup$
– Bob Ueland
Apr 27 at 19:39
$begingroup$
Yes @BobUeland I had extrapolated your earlier comment to includex_y
as "anything of type y, call it x".
$endgroup$
– Roman
Apr 27 at 21:37
add a comment |
$begingroup$
thank you for a nice beginning. I often pronounce x_ as "anything, call it x". I guess you could pronounce x__ as "any sequence, call it x". And maybe you could pronounce x___ as "any sequence including empty, call it x".
$endgroup$
– Bob Ueland
Apr 27 at 16:52
1
$begingroup$
As I spend a fair amount of time teaching Mathematica to students who have never done programming, having a list of terms to use for the language's typography - if only to be self-consistent - is very helpful.
$endgroup$
– bobthechemist
Apr 27 at 17:25
$begingroup$
@bobthechemist please feel free to add the way you would pronounce things to the list! I teach Mathematica too and would be keen to have a consistent list.
$endgroup$
– Roman
Apr 27 at 18:34
$begingroup$
Do you have _h in your table? It represents any expression having the h as its head. For instance f[x_Integer] :=... defines a function that takes any integer as a parameter. I would pronounce x_Integer as "any integer call it x".
$endgroup$
– Bob Ueland
Apr 27 at 19:39
$begingroup$
Yes @BobUeland I had extrapolated your earlier comment to includex_y
as "anything of type y, call it x".
$endgroup$
– Roman
Apr 27 at 21:37
$begingroup$
thank you for a nice beginning. I often pronounce x_ as "anything, call it x". I guess you could pronounce x__ as "any sequence, call it x". And maybe you could pronounce x___ as "any sequence including empty, call it x".
$endgroup$
– Bob Ueland
Apr 27 at 16:52
$begingroup$
thank you for a nice beginning. I often pronounce x_ as "anything, call it x". I guess you could pronounce x__ as "any sequence, call it x". And maybe you could pronounce x___ as "any sequence including empty, call it x".
$endgroup$
– Bob Ueland
Apr 27 at 16:52
1
1
$begingroup$
As I spend a fair amount of time teaching Mathematica to students who have never done programming, having a list of terms to use for the language's typography - if only to be self-consistent - is very helpful.
$endgroup$
– bobthechemist
Apr 27 at 17:25
$begingroup$
As I spend a fair amount of time teaching Mathematica to students who have never done programming, having a list of terms to use for the language's typography - if only to be self-consistent - is very helpful.
$endgroup$
– bobthechemist
Apr 27 at 17:25
$begingroup$
@bobthechemist please feel free to add the way you would pronounce things to the list! I teach Mathematica too and would be keen to have a consistent list.
$endgroup$
– Roman
Apr 27 at 18:34
$begingroup$
@bobthechemist please feel free to add the way you would pronounce things to the list! I teach Mathematica too and would be keen to have a consistent list.
$endgroup$
– Roman
Apr 27 at 18:34
$begingroup$
Do you have _h in your table? It represents any expression having the h as its head. For instance f[x_Integer] :=... defines a function that takes any integer as a parameter. I would pronounce x_Integer as "any integer call it x".
$endgroup$
– Bob Ueland
Apr 27 at 19:39
$begingroup$
Do you have _h in your table? It represents any expression having the h as its head. For instance f[x_Integer] :=... defines a function that takes any integer as a parameter. I would pronounce x_Integer as "any integer call it x".
$endgroup$
– Bob Ueland
Apr 27 at 19:39
$begingroup$
Yes @BobUeland I had extrapolated your earlier comment to include
x_y
as "anything of type y, call it x".$endgroup$
– Roman
Apr 27 at 21:37
$begingroup$
Yes @BobUeland I had extrapolated your earlier comment to include
x_y
as "anything of type y, call it x".$endgroup$
– Roman
Apr 27 at 21:37
add a comment |
$begingroup$
You could try using SpokenString
:
SpokenString[HoldForm[x + y /. x->2]]
"x plus y slash dot x goes to 2"
Addendum
If you don't mind messing with internal functions, it is possible to customize the output of SpokenString
. For this purpose, it is convenient to make use of my ExtractDownValues function reproduced below:
SetAttributes[ExtractDownValues, HoldAll]
ExtractDownValues[sym_[args__]] := ExtractDownValues[sym,args]
ExtractDownValues[sym_,args__] := Cases[
DownValues[sym],_[h_,_] /; MatchQ[Unevaluated[sym[args]],h]
]
The internal function that does most of the heavy lifting is SpokenStringDump`SSText
:
TracePrint[SpokenString[HoldForm[x + y /. x -> 2]], _SpokenStringDump`SSText]
SpokenStringDump`SSText[x+y/. x->2]
SpokenStringDump`SSText[x+y]
SpokenStringDump`SSText[x]
SpokenStringDump`SSText[y]
SpokenStringDump`SSText[2]
SpokenStringDump`SSText[x->2]
SpokenStringDump`SSText[x]
SpokenStringDump`SSText[2]
"x plus y slash dot x goes to 2"
Using ExtractDownValues
we find:
ExtractDownValues @ SpokenStringDump`SSText[x + y /. x -> 2]
HoldPattern[
SpokenStringDump`SSText[SpokenStringDump`a_ /. SpokenStringDump`b_]] :>
SpokenStringDump`SpeakQuantity[SpokenStringDump`a, ReplaceAll, True] ~~
" slash dot " ~~
If[ListQ[Unevaluated[SpokenStringDump`b]],
SpokenStringDump`SpeakListContents[SpokenStringDump`b],
SpokenStringDump`SpeakQuantity[SpokenStringDump`b, ReplaceAll, True]],
HoldPattern[
SpokenStringDump`SSText[SpokenStringDump`f_[SpokenStringDump`a___]]] :>
Module[SpokenStringDump`ans =
SpokenStringDump`SSText0[SpokenStringDump`f[SpokenStringDump`a]],
If[Head[SpokenStringDump`ans] =!= SpokenStringDump`SSText0 && !
MemberQ[SpokenStringDump`ans, $Failed, 0, 1], SpokenStringDump`ans,
SpokenStringDump`SSTextFallThrough[
Unevaluated[SpokenStringDump`f[SpokenStringDump`a]]]]]
Notice the " slash dot " string. So, modifying this downvalue to:
SpokenStringDump`SSText[a_ /. b_] := SpokenStringDump`SpeakQuantity[a,ReplaceAll,True] ~~
" where " ~~
If[ListQ[Unevaluated[b]],
SpokenStringDump`SpeakListContents[b],
SpokenStringDump`SpeakQuantity[b,ReplaceAll,True]
]
will produce:
SpokenString[HoldForm[x + y /. x->2]]
"x plus y where x goes to 2"
$endgroup$
add a comment |
$begingroup$
You could try using SpokenString
:
SpokenString[HoldForm[x + y /. x->2]]
"x plus y slash dot x goes to 2"
Addendum
If you don't mind messing with internal functions, it is possible to customize the output of SpokenString
. For this purpose, it is convenient to make use of my ExtractDownValues function reproduced below:
SetAttributes[ExtractDownValues, HoldAll]
ExtractDownValues[sym_[args__]] := ExtractDownValues[sym,args]
ExtractDownValues[sym_,args__] := Cases[
DownValues[sym],_[h_,_] /; MatchQ[Unevaluated[sym[args]],h]
]
The internal function that does most of the heavy lifting is SpokenStringDump`SSText
:
TracePrint[SpokenString[HoldForm[x + y /. x -> 2]], _SpokenStringDump`SSText]
SpokenStringDump`SSText[x+y/. x->2]
SpokenStringDump`SSText[x+y]
SpokenStringDump`SSText[x]
SpokenStringDump`SSText[y]
SpokenStringDump`SSText[2]
SpokenStringDump`SSText[x->2]
SpokenStringDump`SSText[x]
SpokenStringDump`SSText[2]
"x plus y slash dot x goes to 2"
Using ExtractDownValues
we find:
ExtractDownValues @ SpokenStringDump`SSText[x + y /. x -> 2]
HoldPattern[
SpokenStringDump`SSText[SpokenStringDump`a_ /. SpokenStringDump`b_]] :>
SpokenStringDump`SpeakQuantity[SpokenStringDump`a, ReplaceAll, True] ~~
" slash dot " ~~
If[ListQ[Unevaluated[SpokenStringDump`b]],
SpokenStringDump`SpeakListContents[SpokenStringDump`b],
SpokenStringDump`SpeakQuantity[SpokenStringDump`b, ReplaceAll, True]],
HoldPattern[
SpokenStringDump`SSText[SpokenStringDump`f_[SpokenStringDump`a___]]] :>
Module[SpokenStringDump`ans =
SpokenStringDump`SSText0[SpokenStringDump`f[SpokenStringDump`a]],
If[Head[SpokenStringDump`ans] =!= SpokenStringDump`SSText0 && !
MemberQ[SpokenStringDump`ans, $Failed, 0, 1], SpokenStringDump`ans,
SpokenStringDump`SSTextFallThrough[
Unevaluated[SpokenStringDump`f[SpokenStringDump`a]]]]]
Notice the " slash dot " string. So, modifying this downvalue to:
SpokenStringDump`SSText[a_ /. b_] := SpokenStringDump`SpeakQuantity[a,ReplaceAll,True] ~~
" where " ~~
If[ListQ[Unevaluated[b]],
SpokenStringDump`SpeakListContents[b],
SpokenStringDump`SpeakQuantity[b,ReplaceAll,True]
]
will produce:
SpokenString[HoldForm[x + y /. x->2]]
"x plus y where x goes to 2"
$endgroup$
add a comment |
$begingroup$
You could try using SpokenString
:
SpokenString[HoldForm[x + y /. x->2]]
"x plus y slash dot x goes to 2"
Addendum
If you don't mind messing with internal functions, it is possible to customize the output of SpokenString
. For this purpose, it is convenient to make use of my ExtractDownValues function reproduced below:
SetAttributes[ExtractDownValues, HoldAll]
ExtractDownValues[sym_[args__]] := ExtractDownValues[sym,args]
ExtractDownValues[sym_,args__] := Cases[
DownValues[sym],_[h_,_] /; MatchQ[Unevaluated[sym[args]],h]
]
The internal function that does most of the heavy lifting is SpokenStringDump`SSText
:
TracePrint[SpokenString[HoldForm[x + y /. x -> 2]], _SpokenStringDump`SSText]
SpokenStringDump`SSText[x+y/. x->2]
SpokenStringDump`SSText[x+y]
SpokenStringDump`SSText[x]
SpokenStringDump`SSText[y]
SpokenStringDump`SSText[2]
SpokenStringDump`SSText[x->2]
SpokenStringDump`SSText[x]
SpokenStringDump`SSText[2]
"x plus y slash dot x goes to 2"
Using ExtractDownValues
we find:
ExtractDownValues @ SpokenStringDump`SSText[x + y /. x -> 2]
HoldPattern[
SpokenStringDump`SSText[SpokenStringDump`a_ /. SpokenStringDump`b_]] :>
SpokenStringDump`SpeakQuantity[SpokenStringDump`a, ReplaceAll, True] ~~
" slash dot " ~~
If[ListQ[Unevaluated[SpokenStringDump`b]],
SpokenStringDump`SpeakListContents[SpokenStringDump`b],
SpokenStringDump`SpeakQuantity[SpokenStringDump`b, ReplaceAll, True]],
HoldPattern[
SpokenStringDump`SSText[SpokenStringDump`f_[SpokenStringDump`a___]]] :>
Module[SpokenStringDump`ans =
SpokenStringDump`SSText0[SpokenStringDump`f[SpokenStringDump`a]],
If[Head[SpokenStringDump`ans] =!= SpokenStringDump`SSText0 && !
MemberQ[SpokenStringDump`ans, $Failed, 0, 1], SpokenStringDump`ans,
SpokenStringDump`SSTextFallThrough[
Unevaluated[SpokenStringDump`f[SpokenStringDump`a]]]]]
Notice the " slash dot " string. So, modifying this downvalue to:
SpokenStringDump`SSText[a_ /. b_] := SpokenStringDump`SpeakQuantity[a,ReplaceAll,True] ~~
" where " ~~
If[ListQ[Unevaluated[b]],
SpokenStringDump`SpeakListContents[b],
SpokenStringDump`SpeakQuantity[b,ReplaceAll,True]
]
will produce:
SpokenString[HoldForm[x + y /. x->2]]
"x plus y where x goes to 2"
$endgroup$
You could try using SpokenString
:
SpokenString[HoldForm[x + y /. x->2]]
"x plus y slash dot x goes to 2"
Addendum
If you don't mind messing with internal functions, it is possible to customize the output of SpokenString
. For this purpose, it is convenient to make use of my ExtractDownValues function reproduced below:
SetAttributes[ExtractDownValues, HoldAll]
ExtractDownValues[sym_[args__]] := ExtractDownValues[sym,args]
ExtractDownValues[sym_,args__] := Cases[
DownValues[sym],_[h_,_] /; MatchQ[Unevaluated[sym[args]],h]
]
The internal function that does most of the heavy lifting is SpokenStringDump`SSText
:
TracePrint[SpokenString[HoldForm[x + y /. x -> 2]], _SpokenStringDump`SSText]
SpokenStringDump`SSText[x+y/. x->2]
SpokenStringDump`SSText[x+y]
SpokenStringDump`SSText[x]
SpokenStringDump`SSText[y]
SpokenStringDump`SSText[2]
SpokenStringDump`SSText[x->2]
SpokenStringDump`SSText[x]
SpokenStringDump`SSText[2]
"x plus y slash dot x goes to 2"
Using ExtractDownValues
we find:
ExtractDownValues @ SpokenStringDump`SSText[x + y /. x -> 2]
HoldPattern[
SpokenStringDump`SSText[SpokenStringDump`a_ /. SpokenStringDump`b_]] :>
SpokenStringDump`SpeakQuantity[SpokenStringDump`a, ReplaceAll, True] ~~
" slash dot " ~~
If[ListQ[Unevaluated[SpokenStringDump`b]],
SpokenStringDump`SpeakListContents[SpokenStringDump`b],
SpokenStringDump`SpeakQuantity[SpokenStringDump`b, ReplaceAll, True]],
HoldPattern[
SpokenStringDump`SSText[SpokenStringDump`f_[SpokenStringDump`a___]]] :>
Module[SpokenStringDump`ans =
SpokenStringDump`SSText0[SpokenStringDump`f[SpokenStringDump`a]],
If[Head[SpokenStringDump`ans] =!= SpokenStringDump`SSText0 && !
MemberQ[SpokenStringDump`ans, $Failed, 0, 1], SpokenStringDump`ans,
SpokenStringDump`SSTextFallThrough[
Unevaluated[SpokenStringDump`f[SpokenStringDump`a]]]]]
Notice the " slash dot " string. So, modifying this downvalue to:
SpokenStringDump`SSText[a_ /. b_] := SpokenStringDump`SpeakQuantity[a,ReplaceAll,True] ~~
" where " ~~
If[ListQ[Unevaluated[b]],
SpokenStringDump`SpeakListContents[b],
SpokenStringDump`SpeakQuantity[b,ReplaceAll,True]
]
will produce:
SpokenString[HoldForm[x + y /. x->2]]
"x plus y where x goes to 2"
edited Apr 27 at 19:18
answered Apr 27 at 13:51
Carl WollCarl Woll
77.1k3101202
77.1k3101202
add a comment |
add a comment |
$begingroup$
@C.E Of course there must be several ways to pronounce an expression, depending on the context. I am not after one true way to pronounce, but more a list of examples how you could pronounce some not obvious expressions. Maybe no one thinks this is worthwhile and that's OK, but if anybody has discussed this I would like a link to it.
$endgroup$
– Bob Ueland
Apr 27 at 9:14
$begingroup$
This is a topic in any programming language, as they have not been designed to become acoustic streams. Are you primarily interested in communicating vocally to other people, or are you interested in clarifying your inner monologue while working on code? Some of us are more visual-oriented and a symbol like
->
never makes it beyond the visual stage, never becomes an acoustic event.$endgroup$
– Roman
Apr 27 at 9:16
$begingroup$
@Roman I am primarily interested in communicating vocally to other people. When it comes to other programming languages there is some discussion, see for instance stackoverflow.com/questions/7746894/…
$endgroup$
– Bob Ueland
Apr 27 at 9:23
$begingroup$
I know that pronunciations are opinion based and that there are no true answers, but still it makes sense to me that have some way of communication vocally to other people when the need arises, so the discussion in Haskell was of great help to me, even though it is opinion based.
$endgroup$
– Bob Ueland
Apr 27 at 9:31
$begingroup$
How about you get a list started, like the Haskell example, and everybody chips in? Something like a table with three columns: "symbol", "pronounciations" (many lines), and "voters" where everybody can put in their name to vote for a particular pronounciation.
$endgroup$
– Roman
Apr 27 at 10:13