{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2025-12-14T01:33:56.000Z","description":"Problems submitted by members of the MATLAB Central community.","is_default":true,"created_by":161519,"badge_id":null,"featured":false,"trending":false,"solution_count_in_trending_period":0,"trending_last_calculated":"2025-12-14T00:00:00.000Z","image_id":null,"published":true,"community_created":false,"status_id":2,"is_default_group_for_player":false,"deleted_by":null,"deleted_at":null,"restored_by":null,"restored_at":null,"description_opc":null,"description_html":null,"published_at":null},"problems":[{"id":260,"title":"Create a function handle that reverses the input arguments of another function handle","description":"Given a function that takes two input arguments and returns one output, create another function handle that performs the same operation but with the input arguments in reverse order.\r\n\r\nFor example:\r\n\r\n   f = @(x,y) 2*x+y;\r\n   f(5,6)\r\n\r\nreturns the answer 16. Your function should produce another function handle that performs the same operation except that y is the first input argument and x is the second.\r\n\r\n   g = reverseArguments(f);\r\n   g(6,5)\r\n\r\nreturns 16, and:\r\n\r\n   g(5,6)\r\n\r\nreturns 17.\r\n","description_html":"\u003cp\u003eGiven a function that takes two input arguments and returns one output, create another function handle that performs the same operation but with the input arguments in reverse order.\u003c/p\u003e\u003cp\u003eFor example:\u003c/p\u003e\u003cpre\u003e   f = @(x,y) 2*x+y;\r\n   f(5,6)\u003c/pre\u003e\u003cp\u003ereturns the answer 16. Your function should produce another function handle that performs the same operation except that y is the first input argument and x is the second.\u003c/p\u003e\u003cpre\u003e   g = reverseArguments(f);\r\n   g(6,5)\u003c/pre\u003e\u003cp\u003ereturns 16, and:\u003c/p\u003e\u003cpre\u003e   g(5,6)\u003c/pre\u003e\u003cp\u003ereturns 17.\u003c/p\u003e","function_template":"function g = reverseArguments(f)\r\n  g = @sin;\r\nend","test_suite":"%%\r\nf = @(x,y) 2*x+y;\r\ng = reverseArguments(f);\r\nassert(isequal(g(5,6), 17));\r\nassert(isequal(g(6,5), 16));\r\n\r\n%%\r\nf = @(x,y) x.^y;\r\ng = reverseArguments(f);\r\nassert(isequal(g(2,3), 9));\r\n\r\n%%\r\nf = @(A,theta) A*sin(theta);\r\ng = reverseArguments(f);\r\nassert(isequal(g(4,10), 10*sin(4)));\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":0,"created_by":4303371,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":157,"test_suite_updated_at":"2012-02-05T02:33:43.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-02-05T02:33:43.000Z","updated_at":"2025-12-15T21:13:28.000Z","published_at":"2012-02-05T02:34:46.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a function that takes two input arguments and returns one output, create another function handle that performs the same operation but with the input arguments in reverse order.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor example:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   f = @(x,y) 2*x+y;\\n   f(5,6)]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ereturns the answer 16. Your function should produce another function handle that performs the same operation except that y is the first input argument and x is the second.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   g = reverseArguments(f);\\n   g(6,5)]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ereturns 16, and:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   g(5,6)]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ereturns 17.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":201,"title":"Mimic foldl in functional programming","description":"Mimic the higher-order function |foldl| ( \u003chttp://en.wikipedia.org/wiki/Fold_%28higher-order_function%29 Wikipedia:Fold (higher-order function)\u003e ).\r\n\r\nArguments are a function with two arguments, a start value, and a list. It takes the start value and the first item in the list and then applies the function to them, then feeds the function with this result and the second item in the list, and so on.\r\n\r\n    foldl(f, start, [x1, x2, ..., xn]) == f( (...f(f(f(s, x1), x2), x3), ...) , xn)\r\n\r\n    foldl(@plus, 0, 1:10) == ( ... (((0 + 1) + 2) + 3) + ... + 10) == 55\r\n\r\nIf the list is missing, it have to return the function handle which takes a list.\r\nIf both the start value and the list are missing, it have to return the function handle which takes two arguments, a start value and a list.\r\n  \r\n    sumplusfive = foldl(@plus, 5);\r\n    =\u003e sumplusfive(1:10) == 60\r\n\r\n    concat = foldl(@(x_, y_) [x_ y_]);\r\n    =\u003e concat([1 2 3], [4 5 6]) == [1 2 3 4 5 6]","description_html":"\u003cp\u003eMimic the higher-order function \u003ctt\u003efoldl\u003c/tt\u003e ( \u003ca href=\"http://en.wikipedia.org/wiki/Fold_%28higher-order_function%29\"\u003eWikipedia:Fold (higher-order function)\u003c/a\u003e ).\u003c/p\u003e\u003cp\u003eArguments are a function with two arguments, start value, and a list. It takes the start value and the first item in the list and then applies the function to them, then feeds the function with this result and the second item in the list, and so on.\u003c/p\u003e\u003cpre\u003e    foldl(f, start, [x1, x2, ..., xn]) == f( (...f(f(f(s, x1), x2), x3), ...) , xn)\u003c/pre\u003e\u003cpre\u003e    foldl(@plus, 0, 1:10) == ( ... (((0 + 1) + 2) + 3) + ... + 10) == 55\u003c/pre\u003e\u003cp\u003eIf the list is missing, it have to return the function handle which takes list.\r\nIf both the start value and the list are missing, it have to return the function handle which takes two arguments, start value and list.\u003c/p\u003e\u003cpre\u003e    sumplusfive = foldl(@plus, 5);\r\n    =\u003e sumplusfive(1:10) == 60\u003c/pre\u003e\u003cpre\u003e    concat = foldl(@(x_, y_) [x_ y_]);\r\n    =\u003e concat([1 2 3], [4 5 6]) == [1 2 3 4 5 6]\u003c/pre\u003e","function_template":"function y = foldl(f, start, list)\r\n  y = 0;\r\nend","test_suite":"%% summation\r\nassert(isequal(foldl(@plus, 0, 1:100), 5050));\r\n\r\n%% summation 2\r\nr = rand(1, 100);\r\ny = foldl(@plus, 0, r);\r\nyc = sum(r);\r\nassert(abs(y - yc)/abs(y) \u003c 1e-6);\r\n\r\n%% factorial\r\nassert(isequal(foldl(@times, 1, 1:15), factorial(15)));\r\n\r\n%% find maximum\r\nr = rand(1, 1000);\r\nassert(isequal(foldl(@max, -Inf, r), max(r)));\r\n\r\n%%\r\nassert(isequal(foldl(@(x_, y_) 2*x_ + y_, 4, 1:3), 43));\r\n\r\n%% handle 1\r\nsumplusfive = foldl(@plus, 5);\r\nassert(isequal(sumplusfive(1:100), 5055));\r\n\r\n%% handle 2\r\nconcat = foldl(@(x_, y_) [x_ y_]);\r\nr1 = rand(1, 10);\r\nr2 = rand(1, 10);\r\nassert(isequal(concat(r1, r2), [r1 r2]));\r\n","published":true,"deleted":false,"likes_count":4,"comments_count":0,"created_by":64,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":33,"test_suite_updated_at":"2012-01-31T19:39:00.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-01-31T19:39:00.000Z","updated_at":"2025-05-13T11:16:25.000Z","published_at":"2012-01-31T19:41:29.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eMimic the higher-order function\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efoldl\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Fold_%28higher-order_function%29\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWikipedia:Fold (higher-order function)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e ).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eArguments are a function with two arguments, start value, and a list. It takes the start value and the first item in the list and then applies the function to them, then feeds the function with this result and the second item in the list, and so on.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[    foldl(f, start, [x1, x2, ..., xn]) == f( (...f(f(f(s, x1), x2), x3), ...) , xn)\\n\\n    foldl(@plus, 0, 1:10) == ( ... (((0 + 1) + 2) + 3) + ... + 10) == 55]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the list is missing, it have to return the function handle which takes list. If both the start value and the list are missing, it have to return the function handle which takes two arguments, start value and list.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[    sumplusfive = foldl(@plus, 5);\\n    =\u003e sumplusfive(1:10) == 60\\n\\n    concat = foldl(@(x_, y_) [x_ y_]);\\n    =\u003e concat([1 2 3], [4 5 6]) == [1 2 3 4 5 6]]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":24,"title":"Function Iterator","description":"Given a handle fh to a function which takes a scalar input and returns a scalar output and an integer n \u003e= 1, return a  handle fh2 to a function which applies the given function n times.\n\nExamples:\n\n \u003e\u003e addOne = @(x)x+1;\n \u003e\u003e addTen = iterate_fcn(addOne, 10);\n \u003e\u003e addTen(3)\n ans =\n     13\n\n \u003e\u003e squarer = @(a) a^2;\n \u003e\u003e fh2 = iterate_fcn(squarer, 3);\n \u003e\u003e fh2(3)\n ans =\n         6561\n\n % Golden Ratio\n \u003e\u003e fh = @(y)sqrt(y+1);\n \u003e\u003e fh2 = iterate_fcn(fh,30);\n \u003e\u003e fh2(1)\n ans =\n     1.6180\n","description_html":"\u003cp\u003eGiven a handle fh to a function which takes a scalar input and returns a scalar output and an integer n \u003e= 1, return a  handle fh2 to a function which applies the given function n times.\u003c/p\u003e\u003cp\u003eExamples:\u003c/p\u003e\u003cpre\u003e \u003e\u003e addOne = @(x)x+1;\n \u003e\u003e addTen = iterate_fcn(addOne, 10);\n \u003e\u003e addTen(3)\n ans =\n     13\u003c/pre\u003e\u003cpre\u003e \u003e\u003e squarer = @(a) a^2;\n \u003e\u003e fh2 = iterate_fcn(squarer, 3);\n \u003e\u003e fh2(3)\n ans =\n         6561\u003c/pre\u003e\u003cpre\u003e % Golden Ratio\n \u003e\u003e fh = @(y)sqrt(y+1);\n \u003e\u003e fh2 = iterate_fcn(fh,30);\n \u003e\u003e fh2(1)\n ans =\n     1.6180\u003c/pre\u003e","function_template":"function fh2 = iterate_fcn(fh, n)\nfh2 = fh;\nend","test_suite":"%%\nnoOp = @(x)x;\nfh2 = iterate_fcn(noOp, 50);\nassert(isequal(fh2(pi),pi));\n\n\n%%\naddOne = @(x)x+1;\naddTen = iterate_fcn(addOne, 10);\nassert(isequal(addTen(3),13));\n\n%%\naddOne = @(x)x+1;\naddOne2 = iterate_fcn(addOne, 1);\nassert(isequal(addOne2(3),4));\n\n%%\nsquarer = @(a) a^2;\nfh2 = iterate_fcn(squarer, 3);\nassert(isequal(fh2(3),6561));\n\n%%\nfh = @(y)sqrt(y+1);\nfh2 = iterate_fcn(fh,30);\nassert(abs(fh2(1) - (1+sqrt(5))/2) \u003c 100*eps);","published":true,"deleted":false,"likes_count":61,"comments_count":27,"created_by":1,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":2244,"test_suite_updated_at":"2012-01-18T01:00:20.000Z","rescore_all_solutions":false,"group_id":2,"created_at":"2012-01-18T01:00:20.000Z","updated_at":"2026-03-15T20:56:03.000Z","published_at":"2012-01-18T01:00:20.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a handle fh to a function which takes a scalar input and returns a scalar output and an integer n \u0026gt;= 1, return a handle fh2 to a function which applies the given function n times.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExamples:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ \u003e\u003e addOne = @(x)x+1;\\n \u003e\u003e addTen = iterate_fcn(addOne, 10);\\n \u003e\u003e addTen(3)\\n ans =\\n     13\\n\\n \u003e\u003e squarer = @(a) a^2;\\n \u003e\u003e fh2 = iterate_fcn(squarer, 3);\\n \u003e\u003e fh2(3)\\n ans =\\n         6561\\n\\n % Golden Ratio\\n \u003e\u003e fh = @(y)sqrt(y+1);\\n \u003e\u003e fh2 = iterate_fcn(fh,30);\\n \u003e\u003e fh2(1)\\n ans =\\n     1.6180]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"problem_search":{"errors":[],"problems":[{"id":260,"title":"Create a function handle that reverses the input arguments of another function handle","description":"Given a function that takes two input arguments and returns one output, create another function handle that performs the same operation but with the input arguments in reverse order.\r\n\r\nFor example:\r\n\r\n   f = @(x,y) 2*x+y;\r\n   f(5,6)\r\n\r\nreturns the answer 16. Your function should produce another function handle that performs the same operation except that y is the first input argument and x is the second.\r\n\r\n   g = reverseArguments(f);\r\n   g(6,5)\r\n\r\nreturns 16, and:\r\n\r\n   g(5,6)\r\n\r\nreturns 17.\r\n","description_html":"\u003cp\u003eGiven a function that takes two input arguments and returns one output, create another function handle that performs the same operation but with the input arguments in reverse order.\u003c/p\u003e\u003cp\u003eFor example:\u003c/p\u003e\u003cpre\u003e   f = @(x,y) 2*x+y;\r\n   f(5,6)\u003c/pre\u003e\u003cp\u003ereturns the answer 16. Your function should produce another function handle that performs the same operation except that y is the first input argument and x is the second.\u003c/p\u003e\u003cpre\u003e   g = reverseArguments(f);\r\n   g(6,5)\u003c/pre\u003e\u003cp\u003ereturns 16, and:\u003c/p\u003e\u003cpre\u003e   g(5,6)\u003c/pre\u003e\u003cp\u003ereturns 17.\u003c/p\u003e","function_template":"function g = reverseArguments(f)\r\n  g = @sin;\r\nend","test_suite":"%%\r\nf = @(x,y) 2*x+y;\r\ng = reverseArguments(f);\r\nassert(isequal(g(5,6), 17));\r\nassert(isequal(g(6,5), 16));\r\n\r\n%%\r\nf = @(x,y) x.^y;\r\ng = reverseArguments(f);\r\nassert(isequal(g(2,3), 9));\r\n\r\n%%\r\nf = @(A,theta) A*sin(theta);\r\ng = reverseArguments(f);\r\nassert(isequal(g(4,10), 10*sin(4)));\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":0,"created_by":4303371,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":157,"test_suite_updated_at":"2012-02-05T02:33:43.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-02-05T02:33:43.000Z","updated_at":"2025-12-15T21:13:28.000Z","published_at":"2012-02-05T02:34:46.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a function that takes two input arguments and returns one output, create another function handle that performs the same operation but with the input arguments in reverse order.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor example:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   f = @(x,y) 2*x+y;\\n   f(5,6)]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ereturns the answer 16. Your function should produce another function handle that performs the same operation except that y is the first input argument and x is the second.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   g = reverseArguments(f);\\n   g(6,5)]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ereturns 16, and:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   g(5,6)]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ereturns 17.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":201,"title":"Mimic foldl in functional programming","description":"Mimic the higher-order function |foldl| ( \u003chttp://en.wikipedia.org/wiki/Fold_%28higher-order_function%29 Wikipedia:Fold (higher-order function)\u003e ).\r\n\r\nArguments are a function with two arguments, a start value, and a list. It takes the start value and the first item in the list and then applies the function to them, then feeds the function with this result and the second item in the list, and so on.\r\n\r\n    foldl(f, start, [x1, x2, ..., xn]) == f( (...f(f(f(s, x1), x2), x3), ...) , xn)\r\n\r\n    foldl(@plus, 0, 1:10) == ( ... (((0 + 1) + 2) + 3) + ... + 10) == 55\r\n\r\nIf the list is missing, it have to return the function handle which takes a list.\r\nIf both the start value and the list are missing, it have to return the function handle which takes two arguments, a start value and a list.\r\n  \r\n    sumplusfive = foldl(@plus, 5);\r\n    =\u003e sumplusfive(1:10) == 60\r\n\r\n    concat = foldl(@(x_, y_) [x_ y_]);\r\n    =\u003e concat([1 2 3], [4 5 6]) == [1 2 3 4 5 6]","description_html":"\u003cp\u003eMimic the higher-order function \u003ctt\u003efoldl\u003c/tt\u003e ( \u003ca href=\"http://en.wikipedia.org/wiki/Fold_%28higher-order_function%29\"\u003eWikipedia:Fold (higher-order function)\u003c/a\u003e ).\u003c/p\u003e\u003cp\u003eArguments are a function with two arguments, start value, and a list. It takes the start value and the first item in the list and then applies the function to them, then feeds the function with this result and the second item in the list, and so on.\u003c/p\u003e\u003cpre\u003e    foldl(f, start, [x1, x2, ..., xn]) == f( (...f(f(f(s, x1), x2), x3), ...) , xn)\u003c/pre\u003e\u003cpre\u003e    foldl(@plus, 0, 1:10) == ( ... (((0 + 1) + 2) + 3) + ... + 10) == 55\u003c/pre\u003e\u003cp\u003eIf the list is missing, it have to return the function handle which takes list.\r\nIf both the start value and the list are missing, it have to return the function handle which takes two arguments, start value and list.\u003c/p\u003e\u003cpre\u003e    sumplusfive = foldl(@plus, 5);\r\n    =\u003e sumplusfive(1:10) == 60\u003c/pre\u003e\u003cpre\u003e    concat = foldl(@(x_, y_) [x_ y_]);\r\n    =\u003e concat([1 2 3], [4 5 6]) == [1 2 3 4 5 6]\u003c/pre\u003e","function_template":"function y = foldl(f, start, list)\r\n  y = 0;\r\nend","test_suite":"%% summation\r\nassert(isequal(foldl(@plus, 0, 1:100), 5050));\r\n\r\n%% summation 2\r\nr = rand(1, 100);\r\ny = foldl(@plus, 0, r);\r\nyc = sum(r);\r\nassert(abs(y - yc)/abs(y) \u003c 1e-6);\r\n\r\n%% factorial\r\nassert(isequal(foldl(@times, 1, 1:15), factorial(15)));\r\n\r\n%% find maximum\r\nr = rand(1, 1000);\r\nassert(isequal(foldl(@max, -Inf, r), max(r)));\r\n\r\n%%\r\nassert(isequal(foldl(@(x_, y_) 2*x_ + y_, 4, 1:3), 43));\r\n\r\n%% handle 1\r\nsumplusfive = foldl(@plus, 5);\r\nassert(isequal(sumplusfive(1:100), 5055));\r\n\r\n%% handle 2\r\nconcat = foldl(@(x_, y_) [x_ y_]);\r\nr1 = rand(1, 10);\r\nr2 = rand(1, 10);\r\nassert(isequal(concat(r1, r2), [r1 r2]));\r\n","published":true,"deleted":false,"likes_count":4,"comments_count":0,"created_by":64,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":33,"test_suite_updated_at":"2012-01-31T19:39:00.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-01-31T19:39:00.000Z","updated_at":"2025-05-13T11:16:25.000Z","published_at":"2012-01-31T19:41:29.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eMimic the higher-order function\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efoldl\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Fold_%28higher-order_function%29\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWikipedia:Fold (higher-order function)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e ).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eArguments are a function with two arguments, start value, and a list. It takes the start value and the first item in the list and then applies the function to them, then feeds the function with this result and the second item in the list, and so on.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[    foldl(f, start, [x1, x2, ..., xn]) == f( (...f(f(f(s, x1), x2), x3), ...) , xn)\\n\\n    foldl(@plus, 0, 1:10) == ( ... (((0 + 1) + 2) + 3) + ... + 10) == 55]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the list is missing, it have to return the function handle which takes list. If both the start value and the list are missing, it have to return the function handle which takes two arguments, start value and list.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[    sumplusfive = foldl(@plus, 5);\\n    =\u003e sumplusfive(1:10) == 60\\n\\n    concat = foldl(@(x_, y_) [x_ y_]);\\n    =\u003e concat([1 2 3], [4 5 6]) == [1 2 3 4 5 6]]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":24,"title":"Function Iterator","description":"Given a handle fh to a function which takes a scalar input and returns a scalar output and an integer n \u003e= 1, return a  handle fh2 to a function which applies the given function n times.\n\nExamples:\n\n \u003e\u003e addOne = @(x)x+1;\n \u003e\u003e addTen = iterate_fcn(addOne, 10);\n \u003e\u003e addTen(3)\n ans =\n     13\n\n \u003e\u003e squarer = @(a) a^2;\n \u003e\u003e fh2 = iterate_fcn(squarer, 3);\n \u003e\u003e fh2(3)\n ans =\n         6561\n\n % Golden Ratio\n \u003e\u003e fh = @(y)sqrt(y+1);\n \u003e\u003e fh2 = iterate_fcn(fh,30);\n \u003e\u003e fh2(1)\n ans =\n     1.6180\n","description_html":"\u003cp\u003eGiven a handle fh to a function which takes a scalar input and returns a scalar output and an integer n \u003e= 1, return a  handle fh2 to a function which applies the given function n times.\u003c/p\u003e\u003cp\u003eExamples:\u003c/p\u003e\u003cpre\u003e \u003e\u003e addOne = @(x)x+1;\n \u003e\u003e addTen = iterate_fcn(addOne, 10);\n \u003e\u003e addTen(3)\n ans =\n     13\u003c/pre\u003e\u003cpre\u003e \u003e\u003e squarer = @(a) a^2;\n \u003e\u003e fh2 = iterate_fcn(squarer, 3);\n \u003e\u003e fh2(3)\n ans =\n         6561\u003c/pre\u003e\u003cpre\u003e % Golden Ratio\n \u003e\u003e fh = @(y)sqrt(y+1);\n \u003e\u003e fh2 = iterate_fcn(fh,30);\n \u003e\u003e fh2(1)\n ans =\n     1.6180\u003c/pre\u003e","function_template":"function fh2 = iterate_fcn(fh, n)\nfh2 = fh;\nend","test_suite":"%%\nnoOp = @(x)x;\nfh2 = iterate_fcn(noOp, 50);\nassert(isequal(fh2(pi),pi));\n\n\n%%\naddOne = @(x)x+1;\naddTen = iterate_fcn(addOne, 10);\nassert(isequal(addTen(3),13));\n\n%%\naddOne = @(x)x+1;\naddOne2 = iterate_fcn(addOne, 1);\nassert(isequal(addOne2(3),4));\n\n%%\nsquarer = @(a) a^2;\nfh2 = iterate_fcn(squarer, 3);\nassert(isequal(fh2(3),6561));\n\n%%\nfh = @(y)sqrt(y+1);\nfh2 = iterate_fcn(fh,30);\nassert(abs(fh2(1) - (1+sqrt(5))/2) \u003c 100*eps);","published":true,"deleted":false,"likes_count":61,"comments_count":27,"created_by":1,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":2244,"test_suite_updated_at":"2012-01-18T01:00:20.000Z","rescore_all_solutions":false,"group_id":2,"created_at":"2012-01-18T01:00:20.000Z","updated_at":"2026-03-15T20:56:03.000Z","published_at":"2012-01-18T01:00:20.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a handle fh to a function which takes a scalar input and returns a scalar output and an integer n \u0026gt;= 1, return a handle fh2 to a function which applies the given function n times.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExamples:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ \u003e\u003e addOne = @(x)x+1;\\n \u003e\u003e addTen = iterate_fcn(addOne, 10);\\n \u003e\u003e addTen(3)\\n ans =\\n     13\\n\\n \u003e\u003e squarer = @(a) a^2;\\n \u003e\u003e fh2 = iterate_fcn(squarer, 3);\\n \u003e\u003e fh2(3)\\n ans =\\n         6561\\n\\n % Golden Ratio\\n \u003e\u003e fh = @(y)sqrt(y+1);\\n \u003e\u003e fh2 = iterate_fcn(fh,30);\\n \u003e\u003e fh2(1)\\n ans =\\n     1.6180]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"term":"tag:\"anonymous functions\"","current_player_id":null,"fields":[{"name":"page","type":"integer","callback":null,"default":1,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"per_page","type":"integer","callback":null,"default":50,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"sort","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"body","type":"text","callback":null,"default":"*:*","directive":null,"facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":false},{"name":"group","type":"string","callback":null,"default":null,"directive":"group","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"difficulty_rating_bin","type":"string","callback":null,"default":null,"directive":"difficulty_rating_bin","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"id","type":"integer","callback":null,"default":null,"directive":"id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"tag","type":"string","callback":null,"default":null,"directive":"tag","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"product","type":"string","callback":null,"default":null,"directive":"product","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_at","type":"timeframe","callback":{},"default":null,"directive":"created_at","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"profile_id","type":"integer","callback":null,"default":null,"directive":"author_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_by","type":"string","callback":null,"default":null,"directive":"author","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player_id","type":"integer","callback":null,"default":null,"directive":"solver_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player","type":"string","callback":null,"default":null,"directive":"solver","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"solvers_count","type":"integer","callback":null,"default":null,"directive":"solvers_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"comments_count","type":"integer","callback":null,"default":null,"directive":"comments_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"likes_count","type":"integer","callback":null,"default":null,"directive":"likes_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leader_id","type":"integer","callback":null,"default":null,"directive":"leader_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leading_solution","type":"integer","callback":null,"default":null,"directive":"leading_solution","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true}],"filters":[{"name":"asset_type","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":"\"cody:problem\"","prepend":true},{"name":"profile_id","type":"integer","callback":{},"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":"author_id","static":null,"prepend":true}],"query":{"params":{"per_page":50,"term":"tag:\"anonymous functions\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"anonymous functions\"","","\"","anonymous functions","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f1050e9d678\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f1050e9d5d8\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f1050e9b558\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f1050e9db78\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f1050e9dad8\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f1050e9da38\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f1050e9d718\u003e":"tag:\"anonymous functions\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f1050e9d718\u003e":"tag:\"anonymous functions\""},"queried_facets":{}},"query_backend":{"connection":{"configuration":{"index_url":"http://index-op-v2/solr/","query_url":"http://search-op-v2/solr/","direct_access_index_urls":["http://index-op-v2/solr/"],"direct_access_query_urls":["http://search-op-v2/solr/"],"timeout":10,"vhost":"search","exchange":"search.topic","heartbeat":30,"pre_index_mode":false,"host":"rabbitmq-eks","port":5672,"username":"search","password":"J3bGPZzQ7asjJcCk","virtual_host":"search","indexer":"amqp","http_logging":"true","core":"cody"},"query_connection":{"uri":"http://search-op-v2/solr/cody/","proxy":null,"connection":{"parallel_manager":null,"headers":{"User-Agent":"Faraday v1.0.1"},"params":{},"options":{"params_encoder":"Faraday::FlatParamsEncoder","proxy":null,"bind":null,"timeout":null,"open_timeout":null,"read_timeout":null,"write_timeout":null,"boundary":null,"oauth":null,"context":null,"on_data":null},"ssl":{"verify":true,"ca_file":null,"ca_path":null,"verify_mode":null,"cert_store":null,"client_cert":null,"client_key":null,"certificate":null,"private_key":null,"verify_depth":null,"version":null,"min_version":null,"max_version":null},"default_parallel_manager":null,"builder":{"adapter":{"name":"Faraday::Adapter::NetHttp","args":[],"block":null},"handlers":[{"name":"Faraday::Response::RaiseError","args":[],"block":null}],"app":{"app":{"ssl_cert_store":{"verify_callback":null,"error":null,"error_string":null,"chain":null,"time":null},"app":{},"connection_options":{},"config_block":null}}},"url_prefix":"http://search-op-v2/solr/cody/","manual_proxy":false,"proxy":null},"update_format":"RSolr::JSON::Generator","update_path":"update","options":{"url":"http://search-op-v2/solr/cody"}}},"query":{"params":{"per_page":50,"term":"tag:\"anonymous functions\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"anonymous functions\"","","\"","anonymous functions","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f1050e9d678\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f1050e9d5d8\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f1050e9b558\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f1050e9db78\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f1050e9dad8\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f1050e9da38\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f1050e9d718\u003e":"tag:\"anonymous functions\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f1050e9d718\u003e":"tag:\"anonymous functions\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":260,"difficulty_rating":"easy-medium"},{"id":201,"difficulty_rating":"easy-medium"},{"id":24,"difficulty_rating":"medium"}]}}