Please give credits when using, and also credits to all.
525 kb, see inside. (see code)
My scratch username: Danidanijr_2data:image/png;base64,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data:image/png;base64,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(a+bi) * (c+di) = ac + bci + adi + bdii = ac-bd + (bc+ad)ia,b,c,dcalculate the ordinal position from the graphcs row and column.Calculate the graphics x and (column, row) from the ordinal position.use with |when<>} to make scratch's
|when [timer v] > (10)} blockold resultloudnessloudness
timer10old resultfalse§_directionDialMenutruemenu item-1new firstrest1Project notes
Project name
User
Presentation mode
Language
Zoom blocks
Stage size
Stage scale
Retina display support
Long form input dialog
Plain prototype labels
Input sliders
Execute on slider change
Clicking sound
Turbo mode
Flat design
Keyboard editing
Visible stepping
Thread safe scripts
Prefer smooth animations
Flat line ends
Codification support
Inheritance support
Visible palettePresentation mode
Retina display support
Long form input dialog
Plain prototype labels
Input sliders
Execute on slider change
Clicking sound
Turbo mode
Flat design
Keyboard editing
Visible stepping
Thread safe scripts
Prefer smooth animations
Flat line ends
Codification support
Inheritance supportProject notes
Project name
Language
Zoom blocks
Stage size
Stage scale
Visible palettede:für _ = _ bis _ _
ca:per _ = _ fins _ _
es:para _ = _ hasta _ _
fr:pour _ allant de _ à _ _
1101ide:für _ = _ bis _ _
ca:per _ = _ fins _ _
es:para _ = _ hasta _ _
fr:pour _ allant de _ à _ _
110ide:Zahlen von _ bis _
ca:nombres des de _ a _
es:números de _ a _
fr:nombres de _ à _
1101de:wende _ an auf _
ca:mapeja _ sobre _
es:mapear _ sobre _
fr:appliquer _ à _
1Take any number of input lists, and create a new list containing the items of the input lists. So
APPEND [A B] [C D]
where the [,,,] are lists reports the list
[A B C D]
not [[A B] [C D]].11111Reports a new list containing the items of the input list, but in the opposite order.1inputresultReports a new list whose items are the same as in the input list, except that if two or more equal items appear in the input list, only the last one is kept in the result.1Reports a sorted version of the list in its first input slot, using the comparison function in the second input slot. For a list of numbers, using < as the comparison function will sort from low to high; using > will sort from high to low.1even itemsmerge11#1#2The second input is an "association list," a list of two-item lists. Each of those smaller lists has a "key" as its first item and a "value" as its second. ASSOC reports the first key-value pair in the association list whose key matches the first input.11#11datacountmapmany##1#1data listscount#1datacount1true18012true100de:für _ = _ bis _ _
ca:per _ = _ fins _ _
es:para _ = _ hasta _ _
fr:pour _ allant de _ à _ _
1101iPIXEL3PIXEL1y00falsef(z,c) = z^2 + c(a+bi) * (c+di) = ac + bci + adi + bdii = ac-bd + (bc+ad)ia,b,c,dcenter
left=1
center=2
right=3num1num1num1falseerrorReports one of 100 preselected colors, like a box of 100 crayons.
The colors have names that are meant to be evocative.
They are organized in families, more or less corresponding
to spectral (rainbow) colors; the input slot has a two-level menu
in which you can hover over a family name to see the colors
of that family, each including a crayon number and an RGB value.
See Appendix A of the Snap! Reference Manual for more details.grays={
0 black #000000=0
1 gray7 #121212=1
2 gray14 #242424=2
3 gray21 #363636=3
4 gray28 #484848=4
5 gray36 #5c5c5c=5
6 gray43 #6d6d6d=6
7 gray50 #7f7f7f=7
8 gray57 #919191=8
9 gray64 #a3a3a3=9
10 gray71 #b5b5b5=10
11 gray78 #c8c8c8=11
12 gray85 #dadada=12
13 gray92 #ececec=13
14 white #ffffff=14
}
pinks={
15 deep pink #ff1493=15
16 hot pink #ff69b4=16
17 bright pink #ff007f=17
18 raspberry #e30b5d=18
19 amaranth #e52b50=19
}
reds={
20 red #ff0000=20
21 burgundy #900020=21
22 cherry #990000=22
23 dark candy apple red #a40000=23
24 sanguine #c00000=24
25 maroon #800000=25
26 crimson #c90016=26
27 Lists #d94d11=27
28 candy apple red #ff0800=28
29 coquelicot #ff3800=29
}
browns={
30 saddle brown #8b4513=30
31 chocolate #7b3f00=31
32 kobicha #6b4423=32
33 sepia #704214=33
34 chestnut #954535=34
35 dark brown #654321=35
36 brown #964b00=36
37 golden brown #996515=37
38 cinnamon #b87333=38
39 copper #d2691e=39
}
oranges={
40 orange #ff7f00=40
41 Pantone orange #ff5800=41
42 pumpkin #ff7518=42
43 Variables #f3761d=43
44 Spanish orange #e86100=44
45 burnt orange #cc5500=45
46 sinopia #cb410b=46
47 ochre #cc7722=47
48 carrot #ed9121=48
49 tangerine #f28500=49
}
yellows={
50 yellow #ffff00=50
51 Control #e6a822=51
52 dark goldenrod #b8860b=52
53 goldenrod #daa520=53
54 saffron #f4c430=54
55 sandstorm #ecd540=55
56 mustard #ffdb58=56
57 gold #ffd700=57
58 egg yolk #fee33e=58
59 rubber duck #fbe108=59
}
greens={
60 lime #00ff00=60
61 apple green #8db600=61
62 Operators #62c213=62
63 forest green #228b22=63
64 green #008000=64
65 dark green #006400=65
66 dark pastel green #03c03c=66
67 emerald #50c878=67
68 mint #3eb489=68
69 Pen #00a178=69
}
cyans={
70 aqua (cyan) #00ffff=70
71 dark cyan #008b8b=71
72 cerulean #007ba7=72
73 iceberg #71a6d2=73
74 Sensing #0494dc=74
75 teal #008080=75
76 light sky blue #87cefa=76
77 deep sky blue #00bfff=77
78 dodger blue #1e90ff=78
79 azure #007fff=79
}
blues={
80 blue #0000ff=80
81 midnight blue #191970=81
82 dark powder blue #003399=82
83 cobalt #0047ab=83
84 denim #1560bd=84
85 navy blue #000080=85
86 steel blue #4682b4=86
87 Motion #4a6cd4=87
88 cornflower #6495ed=88
89 slate blue #6a5acd=89
}
purples={
90 violet #8000ff=90
91 Looks #8f56e3=91
92 grape #6f2da8=92
93 indigo #4b0082=93
94 x11 purple #a020f0=94
95 magenta (fuchia) #ff00ff=95
96 dark orchid #9932cc=96
97 Sound #cf4ad9=97
98 purple #7f007f=98
99 dark magenta #8b008b=99
}colorcolor1001123Takes three inputs for hue, saturation, and value ("brightness")
values, each between 0 and 1. 0,0,0 is black; 0,0,1 is white. 0.15,1,1 is yellow, and so on.
The SET PEN block in this library lets you set individual hue, saturation, or value without changing the others, lets you provide a list of three HSV color components, and lets you
use the very much superior HSL (hue, saturation, lightness)
color space.
See Appendix A of the Snap! Reference Manual for details.pt:altera a cor da caneta para matiz _ , saturação _ e brilho _ (0 a 1)
0.30.70.6Reports the current pen color as a list of three HSV values
in the range 0-1.
See Appendix A in the Snap! Reference Manual for details.pt:a cor da caneta em HSV (matiz, saturação e brilho, 0 a 1)
This block allows you to set the pen's color, transparency (on a scale from 0=opaque to 100=invisible), or size (in pixels). The color can be set in many ways, including RGB values, HSV values, HSL values, fair HSV or HSL (based on a modified spectrum that gives each spectral color equal space and promotes brown to a color), or X11/W3C color name.
See Appendix A in the Snap! Reference Manual for details.size
color
fair hue
transparency
X11/W3C name
(3D color spaces)={
fair HSL={
fair hue
fair saturation (HSL)
fair lightness
fair HSL vector
}
fair HSV={
fair hue
fair saturation (HSV)
fair value (brightness)
fair HSV vector
}
HSL={
hue
saturation (HSL)
lightness
HSL vector
}
HSV={
hue
saturation (HSV)
value (brightness)
HSV vector
}
RGB (0-255)={
red
green
blue
RGB vector
RGB hex
}
}255100We have to do this last test to rule out the vector options, which aren't numbers; their code makes three recursive calls and we catch range issues then.sizehueHSLHSV✐ fair?falsesaturation (HSV)value (brightness)transparencyred✐ last set asRGB✐ fair?falsegreen✐ last set asRGB✐ fair?falseblue✐ last set asRGB✐ fair?falsefair huevalue100color3.6index1index-1scale1255fromto1newHSVHSL✐ fair?truefair huecolorColorcolor300index15scale15grayscale15255fromto12✐ last set ascolor✐ fair?falsesaturation (HSL)lightnessfair saturation (HSV)22✐ last set asHSV✐ fair?truefair value (brightness)33✐ last set asHSV✐ fair?truefair saturation (HSL)✐ last set asHSL2222✐ fair?truefair lightness✐ last set asHSL3333✐ fair?truefair HSL vectorfair HSV vectorHSL vectorHSV vectorRGB vectorRGB hex01566red1612green1634blue1656X11/W3C nameX11/W3C namevaluetruex11w3c44partial matches4matchhead matchesSUBSET throws here if it handles a unique match1HSVHSV100This block reports the pen size, color, or transparency, in all the same ways that the SET PEN block allows you to set those pen properties. (It will also report the current crayon number, if the pen color was most recently set with SET PEN TO CRAYON.)
See Appendix A of the Snap! Reference Manual for details. size
crayon
color
fair hue
transparency
X11/W3C name
(3D color spaces)={
fair HSL={
fair hue
fair saturation (HSL)
fair lightness
fair HSL vector
}
fair HSV={
fair hue
fair saturation (HSV)
fair value (brightness)
fair HSV vector
}
HSL={
hue
saturation (HSL)
lightness
HSL vector
}
HSV={
hue
saturation (HSV)
value (brightness)
HSV vector
}
RGB (0-255)={
red
green
blue
RGB vector
RGB hex
}
}huesaturation (HSV)value (brightness)transparencyRGB vectorredgreenblueRGB hexHSV vectorHSL vectorsaturation (HSL)lightnesscolorfair huenot setfair saturation (HSL)not setfair lightnessnot setfair HSL vectornot setfair saturation (HSV)2not setfair value (brightness)3not setfair HSV vectornot setcrayonnot setX11/W3C namenot setTakes a value from 0 to 15 and reports
the corresponding hexadecimal digit.
For internal use of the color library.Changes any pen property by the specified amount. Some color scales can't be adjusted this way unless the color was first SET using that scale.
Vectors (e.g., RGB color as a list of three numbers) can be incremented
by a vector as the amount. X11/W3C names can't be incremented.size
crayon
color
fair hue
transparency
(3D color spaces)={
fair HSL={
fair hue
fair saturation (HSL)
fair lightness
fair HSL vector
}
fair HSV={
fair hue
fair saturation (HSV)
fair value (brightness)
fair HSV vector
}
HSL={
hue
saturation (HSL)
lightness
HSL vector
}
HSV={
hue
saturation (HSV)
value (brightness)
HSV vector
}
RGB (0-255)={
red
green
blue
RGB vector
RGB hex
}
}crayonRGB hexI don't know how to handle Don't ask.
Only for internal use by the SET PEN block.trueThis block creates new variables on the selected scope: global (for all sprites), sprite (for this sprite only) or script (only for that blocks stack) with the names given (in 'names' list).
If there is already a variable with that name in that scope, it does nothing: no errors and no overwrites.pt:cria as variáveis _ _
ca:crea les _ variables _
es:crear las _ variables _
de:erstellen _ var _
globalglobal
sprite
scripteach itemvar ide = this.parentThatIsA(IDE_Morph);
ide.flushBlocksCache('variables'); // b/c of inheritance
ide.refreshPalette();This block reports "true" if there is a variable with this given name (input slot) in that context.
It can be a global, sprite or script variable.
Otherwise it reports "false".pt:a variável _ existe
ca:existeix la variable _ ?
es:existe la variable _ ?
de:existiert var _ ?
Creates a bunch of global variables.
For internal use by Color library.global✐ last set as✐ fair?✐ color scale✐ HSL✐ last crayon✐ last X11✐ raw HSL✐ raw HSV✐ last set asRGB✐ fair?false✐ raw HSV0100100a1051100015Hello!2Hello!§_getVarNamesDict1§_getVarNamesDict1Hello World!enEnglish=en
Spanish=es
German=de
French=fr
Polish=pl
Chinese=zh
Japanese=ja11Comment5es:ejecutar función ( _ ) { _ } con _
es:llamar función ( _ ) { _ } con _
return 0;es:cambiar a modo des
es:cambiar a modo usuario
es:¿en modo des?
es:inspeccionar _
this.inspect(obj);es:guadar projeto
es:mundo
es:este proceso
es:¿esta secuencia tiene clic?
es:¿atómica?
make sure "thing" is a particular type or any of a number of types
and raise an error if not
use responsibly wrt performance implicationses:_ aseverar tipo(s) _
Blocks in custom categories are saved in their categories, but the categories themselves are not; running create category with the same name gets the block back in the palette, but it seems that blocks in the editor are obsolete.es:TeP: crear/recolorear categoría _ color _ _ _
es:_ de _
es:SpriteMorph.prototipo
A really long text string to scroll in a variable, object property, or whatever thing can be assigned a text string.85311pt:cria as variáveis globais _
var ide = this.parentThatIsA(IDE_Morph);
ide.flushBlocksCache('variables'); // b/c of inheritance
ide.refreshPalette();pt:cria as variáveis de objecto _
var ide = this.parentThatIsA(IDE_Morph);
ide.flushBlocksCache('variables'); // b/c of inheritance
ide.refreshPalette();pt:a variável _ existe
§_getVarNamesDictvthrow new ReferenceError(`Variable ${v} does not exist.`)§_getVarNamesDict§_getVarNamesDictnormal
normal
large
slider§_getVarNamesDictNaN§_getVarNamesDictNaN§_getVarNamesDict§_getVarNamesDict§_getVarNamesDict00§_getVarNamesDict10§_getVarNamesDict0§_getVarNamesDict10§_getVarNamesDict0§_getVarNamesDict§_getVarNamesDict§_getVarNamesDict§_getVarNamesDictThis block is like Scratch's <(text) contains (text)> predicate. The only thing different is that you can choose to have caps sensitive on or off, which is a feature Scratch doesn't have.
HELP:
If the text you put in the first input contains the text you put in the second input, it will say true. The drop down menu on the right allows you to choose between caps sensitive or no caps sensitive. Hello WorldWorld0Cap Senstive=1
No Cap Sensitive=01LABEL will stamp text on the stage at the given font size. The direction of the text is the direction the sprite is facing, and color will match the pen color.Hello!121datamapmany1data lists11110icontcatchtagcontcatchtagSpriteSpriteStyloStyloPt Roueyour comment heremember_addmembervalue_searchmember_list_nilnilprimitives_add_search_remove_list_nilpublish all primitivesmy selfself21messagethismessagesuperdefine this_addthisdefine super (get parents)_addsuperdefine root_addrootimplement class definitiondefine class
!!! IMPORTANT !!!
the following block should come after class
implementation_addclassmissingmissingnil#i#1membervalueget a member
It is recommended to use a Getter block instead "get"_addget2_searchmemberdefault constructor_addclassrootthissuperitemxyradial_dot_line_toaPoint_draw_line_toaPoint_clone_to_cartesian_to_radialpublic membersxxxyyyread only public memberradialconstructorPointpublic methodstranslateTodotdrawLineToclonerootthissuperltb#4rootthissuperpt1pt2_drawpublic membersstartstartstartstopstopstopconstructorLinepublic methodsdrawrootthissuper1011013.57000100i1360offset360pen size10050210-1pen size1003330.01old_roverlay0200parameters are in order
gridWidth (number of squares in the width of the grid)
gridHeight (numer of squares in the height of the grid)
patchSize( is the measure in inches of a patch - or gird cell)
patchScale( used for display - not relevant to calculating material)
screenWidth and screenHeight are self explanatory.
Change the screen size under the gear heading (preferences)
sqSize is the size of a grid square
columnStart and rowStart offset the grid from the upper left cornerPlace a patch using cartesian coordinates of size, with set pen color.place patch using graphics coorinates. No fillSet column (x) position to graphics coordinate x.Set y position to graphics coordinate y.Place sprite at graphics coordinate gx and gy.return the graphics x coordinate.return the graphics y coorindate.Create a grid based on the startup values. Show text if true.calculate the ordinal position from the graphcs row and column.Calculate the graphics x and (column, row) from the ordinal position.Place a patch at the ordinal position of the graphics coordinateDefine a ninepatch with a single color.Place solid blocks spacing blocks apart starting at startColumn and startRow..c6r6Create a classic 9 square patch at the position specified using the specified colors..A brute force renidtion of 9 square that illustrates how it alternates. Alternate9Blocks is the abstract.4050314151324252Place 9 square blocks spacing blocks apart starting at startColumn and startRow..c6r6a1a1a1EmptyEmpty
next backdrop
previous backdrop
random backdropbackdrop switches to numbernumber
nameloudnessloudness
timer10left-rightleft-right
don't rotate
all aroundxthis.rotationStyle = Number(x);
this.changed();
this.drawNew();
this.changed();§_getVarNamesDictnumbernumber
nameapplearegion1truecounter1falsethingcounter10return typeof meter != undefined;return Math.floor(meter.volume * 100);Hello, world!#00000020Arialerrorregular
regular=regular
highlighted=highlighted
selected=selectedfalse2010number of steps10number of steps1010scientific
infinity
percentage to infinity
log percentage to infinityinfinitypercentage to infinitylog percentage to infinity5make graph [repeats] [zoom] [t] [function] [list]
example:
make graph 240 0.5 [t] [(t mod 10)] [list]1521,2,3,4,5,Hello World!HelloHicb1cb1Plays a specific note and waits for it to finish4400.5Plays a chord and waits for it to finish0.5Returns the frequency for a piano note60
§_pianoKeyboardMenuPlays all of the notes in order and waits for them to finish0.5Plays a note4400.5Outputs the note after it has been shifted by the octave60
§_pianoKeyboardMenu0Do each block in the order specifiedPlays a chord0.5Plays all of the notes in order0.5Opens a website in a new tab or window. Make sure it starts with https:// or http://https://www.google.comPopup with text.Creates a desktop notification. Any or all of the inputs can be filled.
NB: Will ask user for permission first.Popup with 'Ok' or 'Cancel'Popup with an input.Creates a new window with text in.TextCreates a browser cookie with the value, title, and expire date.Returns the value of the specified cookie.Sets cursor to a specific image. See https://www.w3schools.com/CSSref/playit.asp?filename=playcss_cursor&preval=alias for a list of keywords"Help! I don't know how to change the cursor back!"Opens a new window with a website.https://www.google.comGet html contents from anywhere on the internet.https://en.wikipedia.org/wiki/Main_pagept:altera a cor da tua caneta para vermelho _ , verde _ e azul _ (0 a 255)
25500Returns list [r,g,b]ff00ff31Reports the part of the first string up to the first instance of the second string inside it. If the second string isn't found, reports the entire first string.pt:o texto de _ antes de _
Reports the portion of the first input string starting after the first occurrence of the second string. If the second string isn't found in the first string, reports an empty string.pt:o texto de _ depois de _
Reports the character position (starting from 1) of the beginning of the first input string inside the second input string.
If it's not found, reports 0.pt:a posição de _ em _
If input is TRUE, comparisons made by functions in the string library will be case-independent (so "FOO" = "foo"). This is the default.
If input is FALSE, comparisons will be exact.pt:altera comparações ignorando distinção minúsculas/maiúsculas para _
Reports the portion of the first input (string) starting at the position given by the second input (counting from 1, like LETTER n OF) and ending at the position given by the third input (also counting from 1). If the third input is empty, reports the portion from the first position to the end of the string.
If a position number is negative, counts from the end backward, so -1 is the last character, -2 is the next to last, etc.pt:o texto de _ entre as posições _ e _ , inclusive
123456pt:a cor da caneta em RGB (vermelho, verde e azul; 0 a 255)
-220160220-160hexmap-out\1using for just in case I need the loop count, even though I don't think I willHello!129000010000truetrue60§_pianoKeyboardMenu0.5Hello!1.32123.456789021..theres another way how to do it?
answer: yes
floor ( number * 1000 ) / 1000
and this reporter is useless2c1a,2Hello,Thered1b110Hello!12leftpx monospaceHello, World!110.8150001000 MSHello!12leftpx monospace00truetextsizetextAtextFONTvar stage = this.parentThatIsA(StageMorph),
context = stage.penTrails().getContext('2d'),
rotation = radians(this.direction() - 90),
trans = new Point(
this.center().x - stage.left(),
this.center().y - stage.top()
),
isWarped = this.Warped,
len,
pos;
if (isWarped) {endWarp(); }
context.save();
context.font = size + "px " + textFONT;
context.textAlign = textA;
context.textBaseline = 'alphabetic';
context.fillStyle = this.color.toString();
len = context.measureText(text).width;
trans = trans.multiplyBy(1 / stage.scale);
context.translate(trans.x, trans.y);
context.rotate(rotation);
context.fillText(text, 0, 0);
context.translate(-trans.x, -trans.y);
context.restore();
pos = new Point(
len * Math.sin(radians(this.direction())),
len * Math.cos(radians(this.direction())));
pos = pos.add(new Point(this.xPosition(), this.yPosition()));
this.gotoXY(pos.x, pos.y, false);
this.changed();
if (isWarped) {this.startWarp(); }
stage.changed();testinput200@Yes@LSNotestinputtest#inputfalse123456789012.34567893hello worldeCatch errors.
Runs the first script. If it succeeds, nothing else happens.
But if it has an error (something that would otherwise result
in a red halo around the block), then the second script is run,
with the text of the error message that would have been shown in the variable ERROR.pt:tenta executar _ e, em caso de erro _ , executa _
returnLET (FOO) BE (5)
is equivalent to
SCRIPT VARIABLES (FOO)
SET (FOO) TO (5)pt:cria a variável de guião _ com valor _
Catch errors in a reporter.
Evaluates its first input. If that expression successfully reports a value, this block reports that value. If the expression causes a Snap! error,
then the final input slot is evaluated with the text of what would have
been the error message in variable ERROR. SAFELY TRY then reports the value of that final expression.
Sometimes you'll want to throw an error in the final expression. You
can put an ERROR block inside a CALL block to do that.errcall with True to turn on the entire Scheme numeric tower, including infinite-precision integers, exact rationals, and complex numbers; call with False to restore native JavaScript arithmetic.pt:altera utilização de aritmética do Scheme para _
The factorial function, to make very large numbers, to demo bignums.The identity function: reports its input.
It's useful to get things like 3/4 or 5-2i into
numeric input slots.Provides Scheme arithmetic functions not in JavaScriptpt:_ de _
number?
complex?
real?
rational?
integer?
exact?
inexact?
exact
inexact
finite?
infinite?
nan?
numerator
denominator
real-part
imag-part
magnitude
angle311234567890 >>> 1.234e91234567890310000000.0000010e1-2enullTakes a text string as input, and reports a new text string containing all but the first character of the input.pt:_ sem o primeiro caractere
resulti2Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing all but the first word, with one space between words and no spaces at the beginning or end. (Note: consider using SENTENCE->LIST and processing the resulting list instead of doing recursion on sentences in text string form. List operations are faster.)pt:_ sem a primeira palavra
0Takes a text string as input, and reports a new text string containing all but the last letter of the input.pt:_ sem o último caractere
resulti1Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing all but the last word, with one space between words and no spaces at the beginning or end. (Note: consider using SENTENCE->LIST and processing the resulting list instead of doing recursion on sentences in text string form. List operations are faster.)pt:_ sem a última palavra
011111Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing only the first word, with no spaces before or after it.pt:a primeira palavra de _
Takes a text string as input, and reports the last character in the string.pt:o último caractere de _
0Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing only the last word of the input, with no spaces before or after it.pt:a última palavra de _
index011Takes a text string as input, and reports TRUE if the string has no characters in it of any kind, otherwise false.pt:a palavra _ está vazia
0Takes a text string as input, and reports TRUE if the input contains no characters other than spaces (therefore, no words when the string is considered as a sentence), otherwise FALSE.pt:a frase _ está vazia
index10Like JOIN, takes any number of words (text strings) and reports a sentence with its inputs concatenated, but inserts a blank space between the inputs.
Consider using SENTENCE (Lists palette) instead.de:füge Wörter zusammen _
ca:uneix les paraules _
es:unir las palabras _
fr:fusionne les mots _
pt:uma frase com as palavras _
1121Takes a sentence in list form and reports the sentence as a text string.de:Liste $arrowRight Satz _
ca:llista $arrowRight frase _
es:lista $arrowRight frase _
fr:liste $arrowRight phrase _
pt:uma frase com as palavras em _
Takes a sentence in text string form and reports the sentence as a list of its words.de:Satz $arrowRight Liste _
ca:frase $arrowRight llista _
es:frase $arrowRight lista _
fr:phrase $arrowRight liste _
pt:uma lista com as palavras da frase _
report a list in which each item is one letter from the input wordde:Wort $arrowRight Liste _
ca:paraula $arrowRight llista _
es:palabra $arrowRight lista _
fr:mot $arrowRight liste _
pt:uma lista com os caracteres da palavra _
join all the items of the input list
into a single word, and report itde:Liste $arrowRight Wort _
ca:llista $arrowRight paraula _
es:lista $arrowRight palabra _
fr:liste $arrowRight mot _
pt:uma palavra com os caracteres em _
SENTENCE is the main constructor for sentences, represented
as lists of words. It takes zero or more inputs, each of which can
be either a list or a text string. If a list, the input is assumed to be
a list of words. If a text string, it is converted to a list of words using
SENTENCE→LIST. Then all the lists of words are appended to form a new list of words.
If the inputs are lists of lists rather than lists of words, SENTENCE,
like APPEND, does only one level of flattening, reporting a list of
all the items of all the input lists.pt:lança o erro _
Takes a (possibly deep) list as input,
and reports a human-readable text form
of the list (namely, Lisp notation).()mem1e20.999999999999999101022falseanegnegfalse00a1122101022false0anegcnegfalse00a10c120