Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
88
Task/Substring/Jsish/substring-1.jsish
Normal file
88
Task/Substring/Jsish/substring-1.jsish
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
#!/usr/local/bin/jsish -u %s
|
||||
|
||||
var str = "abcdefgh";
|
||||
|
||||
var n = 2;
|
||||
var m = 3;
|
||||
|
||||
// In jsish, semi-colon first character lines are echoed with result
|
||||
;str;
|
||||
;n;
|
||||
;m;
|
||||
|
||||
// * starting from n characters in and of m length;
|
||||
;str.substr(n, m);
|
||||
|
||||
// * starting from n characters in, up to the end of the string;
|
||||
;str.substr(n);
|
||||
;str.substring(n);
|
||||
|
||||
// * whole string minus last character;
|
||||
;str.substring(0, str.length - 1);
|
||||
|
||||
// * starting from a known character within the string and of m length;
|
||||
;str.substr(str.indexOf('b'), m);
|
||||
|
||||
// * starting from a known substring within the string and of m length.
|
||||
;str.substr(str.indexOf('bc'), m);
|
||||
|
||||
|
||||
/* Functional */
|
||||
var res = (function () {
|
||||
'use strict';
|
||||
|
||||
// take :: Int -> Text -> Text
|
||||
function take(n, s) {
|
||||
return s.substr(0, n);
|
||||
}
|
||||
|
||||
// drop :: Int -> Text -> Text
|
||||
function drop(n, s) {
|
||||
return s.substr(n);
|
||||
}
|
||||
|
||||
|
||||
// init :: Text -> Text
|
||||
function init(s) {
|
||||
var n = s.length;
|
||||
return (n > 0 ? s.substr(0, n - 1) : undefined);
|
||||
}
|
||||
|
||||
// breakOn :: Text -> Text -> (Text, Text)
|
||||
function breakOn(strPattern, s) {
|
||||
var i = s.indexOf(strPattern);
|
||||
return i === -1 ? [strPattern, ''] : [s.substr(0, i), s.substr(i)];
|
||||
}
|
||||
|
||||
|
||||
var str = 'abcdefgh';
|
||||
|
||||
|
||||
return JSON.stringify({
|
||||
|
||||
'from 4 in, of 3 length': (function (n, m) {
|
||||
return take(m, drop(n, str));
|
||||
})(4, 3),
|
||||
|
||||
|
||||
'from 3 in, up to end' : (function (n) {
|
||||
return drop(n, str);
|
||||
})(3),
|
||||
|
||||
|
||||
'all but last' : init(str),
|
||||
|
||||
|
||||
'from matching b, of length 3' : (function (pattern, s, n) {
|
||||
return take(n, breakOn(pattern, s)[1]);
|
||||
})('b', str, 3),
|
||||
|
||||
|
||||
'from matching bc, of length 4':(function (pattern, s, n) {
|
||||
return take(n, breakOn(pattern, s)[1]);
|
||||
})('bc', str, 4)
|
||||
|
||||
}, true);
|
||||
|
||||
})();
|
||||
;res;
|
||||
103
Task/Substring/Jsish/substring-2.jsish
Normal file
103
Task/Substring/Jsish/substring-2.jsish
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
#!/usr/local/bin/jsish -u %s
|
||||
|
||||
var str = "abcdefgh";
|
||||
|
||||
var n = 2;
|
||||
var m = 3;
|
||||
|
||||
// In jsish, semi-colon first character lines are echoed with result
|
||||
;str;
|
||||
;n;
|
||||
;m;
|
||||
|
||||
// * starting from n characters in and of m length;
|
||||
;str.substr(n, m);
|
||||
|
||||
// * starting from n characters in, up to the end of the string;
|
||||
;str.substr(n);
|
||||
;str.substring(n);
|
||||
|
||||
// * whole string minus last character;
|
||||
;str.substring(0, str.length - 1);
|
||||
|
||||
// * starting from a known character within the string and of m length;
|
||||
;str.substr(str.indexOf('b'), m);
|
||||
|
||||
// * starting from a known substring within the string and of m length.
|
||||
;str.substr(str.indexOf('bc'), m);
|
||||
|
||||
|
||||
/* Functional */
|
||||
var res = (function () {
|
||||
'use strict';
|
||||
|
||||
// take :: Int -> Text -> Text
|
||||
function take(n, s) {
|
||||
return s.substr(0, n);
|
||||
}
|
||||
|
||||
// drop :: Int -> Text -> Text
|
||||
function drop(n, s) {
|
||||
return s.substr(n);
|
||||
}
|
||||
|
||||
|
||||
// init :: Text -> Text
|
||||
function init(s) {
|
||||
var n = s.length;
|
||||
return (n > 0 ? s.substr(0, n - 1) : undefined);
|
||||
}
|
||||
|
||||
// breakOn :: Text -> Text -> (Text, Text)
|
||||
function breakOn(strPattern, s) {
|
||||
var i = s.indexOf(strPattern);
|
||||
return i === -1 ? [strPattern, ''] : [s.substr(0, i), s.substr(i)];
|
||||
}
|
||||
|
||||
|
||||
var str = 'abcdefgh';
|
||||
|
||||
|
||||
return JSON.stringify({
|
||||
|
||||
'from 4 in, of length 3': (function (n, m) {
|
||||
return take(m, drop(n, str));
|
||||
})(4, 3),
|
||||
|
||||
|
||||
'from 3 in, up to end' : (function (n) {
|
||||
return drop(n, str);
|
||||
})(3),
|
||||
|
||||
|
||||
'all but last' : init(str),
|
||||
|
||||
|
||||
'from matching b, of length 3' : (function (pattern, s, n) {
|
||||
return take(n, breakOn(pattern, s)[1]);
|
||||
})('b', str, 3),
|
||||
|
||||
|
||||
'from matching bc, of length 4':(function (pattern, s, n) {
|
||||
return take(n, breakOn(pattern, s)[1]);
|
||||
})('bc', str, 4)
|
||||
|
||||
}, true);
|
||||
|
||||
})();
|
||||
;res;
|
||||
|
||||
/*
|
||||
=!EXPECTSTART!=
|
||||
str ==> abcdefgh
|
||||
n ==> 2
|
||||
m ==> 3
|
||||
str.substr(n, m) ==> cde
|
||||
str.substr(n) ==> cdefgh
|
||||
str.substring(n) ==> cdefgh
|
||||
str.substring(0, str.length - 1) ==> abcdefgh
|
||||
str.substr(str.indexOf('b'), m) ==> bcd
|
||||
str.substr(str.indexOf('bc'), m) ==> bcd
|
||||
res ==> { "all but last":"abcdefg", "from 3 in, up to end":"defgh", "from 4 in, of length 3":"efg", "from matching b, of length 3":"bcd", "from matching bc, of length 4":"bcde" }
|
||||
=!EXPECTEND!=
|
||||
*/
|
||||
Loading…
Add table
Add a link
Reference in a new issue